花满店香 2022-03-16 23:34 采纳率: 66.7%
浏览 196
已结题

急!C语言运行跳过for循环就结束运行了,怎么办?

问题遇到的现象和发生背景

后天答辩,报告还没写,代码还没解决/(ㄒ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语言的方法解决,不影响其他代码。目前大一新手,太深的知识没学过也不懂。
谢谢♥

  • 写回答

2条回答 默认 最新

  • @YeMaolin 2022-03-16 23:39
    关注

    输入多个取地址符,%s不需要取地址符

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月28日
  • 专家已采纳回答 3月20日
  • 创建了问题 3月16日

悬赏问题

  • ¥30 STM32 INMP441无法读取数据
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗
  • ¥500 把面具戴到人脸上,请大家贡献智慧
  • ¥15 任意一个散点图自己下载其js脚本文件并做成独立的案例页面,不要作在线的,要离线状态。
  • ¥15 各位 帮我看看如何写代码,打出来的图形要和如下图呈现的一样,急
  • ¥30 c#打开word开启修订并实时显示批注
  • ¥15 如何解决ldsc的这条报错/index error
  • ¥15 VS2022+WDK驱动开发环境