下面是我的最终代码
#include <stdio.h>
#include <stdlib.h>
int main (void)
{
int n=1;
int a=0;
char c=0;
while(n<4) //用无限循环
{
printf("请输入想要查询的学号:");
scanf("%d",&a);
if(!(a>=1&&a<=36))
printf("请正确输入!/n");
else
switch (a)
{
case 25:
printf("姓名:张艺/n年龄:20/n");
break;
case 17:
printf("姓名:张怡/n年龄:17/n");
break;
case 14:
printf("姓名:张翼/n年龄:19/n");
break;
case 12:
printf("姓名:张毅/n年龄:19/n");
break;
default:
printf("你不是3-404的成员!/n");
}
printf("想要继续查询吗?是:请输入除N以外的任意字符;不是:请输入N/n");
fflush(stdin); /*刷新缓冲区*/
scanf("/n%c",&c);
a=0; /*这里是为了避免第二次查询时输入字母也可以输出学生信息,但其中原理不大懂,在调试时a是保留上一次输 入的值,只有第二次正确输入学号是才会被刷新,那应该怎样完善呢?*/
if(toupper(c)=='N')
break;
}
printf("谢谢使用!/n");
system("pause");
return 0;
}
我原本想在switch语句之前加一些代码来检测a的输入情况,代码如下:if(!(a>=1&&a <=36)) printf("请正确输入");else switch...
但这种局限很大,因为只能对一些人数少的组织这样做,而且这样也违背我下面的那个default语句的功能。所以我很想换一种代码来检测a的输入情况,只要用户输入的是数字,就执行switch下面的代码,否则询问是否要继续查询,可是怎样实现呢???
麻烦大家了,谢谢!!!
学生信息查询系统(有点问题)
最新推荐文章于 2023-02-26 19:35:10 发布