当我想要修改姓名的时候,程序不往下运行了sos
#include <stdio.h>
struct student{
int num,age;
char name[10000];
char jg;
char sex;
char zy;
char bj;
char xb;};
int change_a(struct student *p,int n,int num,char a,int chioce);
int main(){
int n,num,chioce,age,i,pos;
char a;
printf("请输入操作学生人数");
scanf("%d",&n);
struct student stu[n];
printf("对应顺序输入以下信息即可\n");
for(i=0;i<n;i++)
{
printf("姓名:");
scanf("%s",stu[i].name);
printf("学号:");
scanf("%d",&stu[i].num);
printf("性别:");
scanf("%s",&stu[i].sex);
printf("年龄:");
scanf("%d",&stu[i].age);
printf("籍贯:");
scanf("%s",&stu[i].jg);
printf("系别:");
scanf("%s",&stu[i].xb);
printf("专业班级:");
scanf("%s",&stu[i].bj);
}
printf("请输入修改学生学号:");
scanf("%d",&num);
printf("请输入修改学生信息选项\n");
printf("1.姓名2.性别3.年龄4.籍贯5.系别6.专业班级\n");
scanf("%d",chioce);
printf("请输入新的修改信息:");
if(chioce==3)
scanf("%d",&age);
else
scanf("%s",&a);
pos=change_a(stu,n,num,a,chioce);
if(pos==-1)
printf("无此学号\n");
else
{
printf("修改后的信息如下");
printf("姓名\t|学号\t|性别\t|年龄\t|籍贯\t|系别\t|专业班级\n");
printf("%s\t%d\t%s\t%d\t%s\t%s\t%s\t",stu[pos].name,stu[pos].num,stu[pos].sex,stu[pos].age,stu[pos].jg,stu[pos].xb,stu[pos].bj);
}
}
int change_a(struct student *p,int n,int num,char a,int chioce)
{
int i,pos;
for(i=0;i<n;i++,p++)
{
if(p->num==num)
break;
}
if(i<n)
{
switch(chioce)
{
case 1:p->name[i]=a;break;
case 2:p->sex=a;break;
case 4:p->jg=a;break;
case 5:p->xb;break;
case 6:p->bj;break;
}pos=i;
}else{
pos=-1;
}
return pos;
}
![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/260748282376161.png "#left")
可以帮帮我吗谢谢!