键盘打工穷人 2021-07-18 14:45 采纳率: 57.1%
浏览 27
已采纳

为啥选择switch的序号后菜单还在循环(部分程序)

while (1)
{
printf("*\n");
printf("使用学生成绩管理系统\n");
printf("[1] 输入所有学生信息\n");
printf("[2] 输出所有学生成绩\n");
printf("[3] 按学号查找某个学生信息\n");
printf("[4] 按姓名查找某个学生信息\n");
printf("[5] 按总成绩对学生排序\n");
printf("[6] 按学号删除某个学生信息\n");
printf("[7] 按学号增加某个学生信息\n");
printf("[0] 退出程序\n");
printf("请输入您的选择(0 - 7):");
scanf("%d", &xuhao);
printf("
**)\n");
switch (xuhao)
{
case 1:
printf("请输入学生信息!\n");
head=creat();
break;
case 2:
print(head);
break;
case 3:
printf("请输入要查找的学号!\n");
research_1(head);
break;
case 4:
printf("请输入要查找的名字!\n");
research_2(head);
break;
case 5:
PX(head);
break;
case 6:
printf("请输入要删除的学号!\n");
scanf("%d", &del_num);
del(head,del_num);
break;
case 7:
printf("请输入要插入的信息!\n");
printf("\n学号:");
scanf("%d", &stu.num);
printf("\n姓名:");
scanf("%s", stu.name);
printf("\n语文成绩:");
scanf("%d", &stu.chinese);
printf("\n数学成绩:");
scanf("%d", &stu.math);
printf("\n英语成绩:");
scanf("%d", &stu.english);
insert(head,&stu);
break;
case 0:
printf("退出程序!\n");
exit(0);
break;
default:
printf("您输入的序号有误,请重新输入!\n");
}
}

img

  • 写回答

1条回答 默认 最新

  • 遗落尘污 2021-07-18 15:12
    关注

    while没有break。
    case里的break是switch语法的。可以加一个布尔变量标识是否处理过,在while语块结束时判断是否处理,如果处理了就break。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 7月18日
  • 创建了问题 7月18日

悬赏问题

  • ¥100 求数学坐标画圆以及直线的算法
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站