如图,输入所有整数都没问题,输入字母或者小数就死循环
代码哪里错了吗?
1、加个-getchar();-试试
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
int a;
printf("输入0停止循环\n");
scanf_s("%d", &a); // &a表示存储单元的地址
while (a!=0)
{
if (a == 1)
printf("周一:科技活动\n");
else if (a == 2)
printf("周二:科技活动\n");
else if (a == 3)
printf("周三:科技活动\n");
else if (a == 4)
printf("周四:科技活动\n");
else if (a == 5)
printf("周五:科技活动\n");
else
printf("输入有误\n");
// 从上一个缓冲区拿值,如果输出的字符不是整数
// 5.7在上一个缓冲区只会取到5的值
// 所以a!=0,a!=0永远成立
// 解决方法,加个
getchar();
scanf_s("%d", &a);
}
printf("\n");
system("pause");
return 0;
}
scanf_s()后面要加长度的吧
15行还有一个输入
a是你自己定义int
循环里面最后加getchar(); 试试 ,请采纳哦