输入不存在的学号会重复输入

在修改学生学号时会一直出现将学号修改为……
不能跳出来,怎样解决这个问题,使输入的学号不是已存在的,再继续执行其他的

img

img

你这话有点没明白

这段里这样写,供参考:

 while (a)  // 这里为什么是 while(a) ?
    {
        switch (a)
        {
            case 1:
                   int flg = 0;
                   printf("将%d学生的学号修改为:", num);
                   do {
                       scanf("%d", &upd_stu.studentID);
                       for (j = 0, flg  = 1;flg && j < stu_num; j++)
                           if (upd_stu.studentID != num && stu[j].studentID == upd_stu.studentID)
                           {  //如果输入的是原学号,被允许
                               printf("您修改的学号已存在,请重新输入:");
                               flg = 0;
                           }
                       if (flg) {
                           stu[i].studentID = upd_stu.studentID;
                           break;
                       }
                   } while(1);
                   break;
            case 2:
                   //...
                   break;

        }