问题遇到的现象和发生背景
后天答辩,报告还没写,代码还没解决/(ㄒoㄒ)/
C语言 编译无错,运行时跳过了for循环就结束运行了,怎么办?
问题相关代码,请勿粘贴截图
//修改
void student_alter(struct Student stu[],int n)
{
int i,c,flag;
char s3[20];
printf("\n修改的学生信息\n");
printf("请输入需要修改学生的学号:");
scanf("%s",&stu[i].student_id);
for(i=0;i<n;i++)
if(strcmp(stu[i].student_id,s3)==0)
{
flag=1;
printf("该学生信息如下:\n");
printf("学号:%s\n",stu[i].student_id);
printf("姓名:%s\n",stu[i].student_name);
printf("班级:%d\n",stu[i].Class);
printf("课程编号:%s\n",stu[i].course_id);
printf("课程名称:%s\n",stu[i].course_name);
}
else
{
printf("提示:该学号不存在!");
}
printf("请修改该学生的信息\n");
printf("学号:");
scanf("%s",&stu[i].student_id);
printf("姓名:");
scanf("%s",&stu[i].student_name);
printf("班级:");
scanf("%d",&stu[i].Class);
printf("题目编号:");
scanf("%s",&stu[i].course_id);
printf("题目名称:");
scanf("%s",&stu[i].course_name);
printf("提示:是否保存数据(y/n):");
scanf("%s",&c);
if(c=='y')
{
printf("修改成功!\n");
printf("修改后学生信息如下:\n");
printf("学号\t姓名\t班级\t题目编号\t题目名称\n");
printf("%s\t",stu[i].student_id);
printf("%s\t",stu[i].student_name);
printf("%d\t",stu[i].Class);
printf("%s\t\t",stu[i].course_id);
printf("%s\n",stu[i].course_name);
printf("\n");
}
}
//删除
void student_delete(struct Student stu[],int n)
{
int i,flag;
char s4[20];
printf("\n****删除学生信息****\n");
printf("请输入需要删除学生的学号:");
scanf("%d",&stu[i].student_id);
for(i=0;i<n;i++)
if(strcmp(stu[i].course_id,s4)==0)
{
printf("提示:已成功删除!");
}
else
printf("提示:该课程编号不存在!\n");
}
//主函数区
int main()
{
while(1)//条件永真
{
int j,num;
menu();
printf("请选择你的操作:");
scanf("%d",&j);
switch(j)
{
case 1: write(stu,N);break;
case 2: read(stu,N); break;
//case 3: add(stu,N); break;
case 4: search(stu,N);break;
case 5: student_alter(stu,N);break;
case 6: student_delete(stu,N);break;
//case 7:fun1;break;
//case 8:fun2;break;
case 0:exit(0);
default: printf("你输入的编号不正确!\n");
}
}
return 0;
}
运行结果及报错内容
编译无错。
//运行界面
欢迎使用选题管理系统
1.输入学生信息
2.输出学生信息
3.添加新的信息
4.查询学生信息
5.修改学生信息
6.删除学生信息
0. 退出系统
请选择你的操作:5
修改的学生信息
请输入需要修改学生的学号:1
Press any key to continue
我的解答思路和尝试过的方法
我想要达到的结果
用C语言的方法解决,不影响其他代码。目前大一新手,太深的知识没学过也不懂。
谢谢♥