为什么我输入 q就是无限循环 第一个printf ?我想做一个输入的限制 让输入只能是1到5的数字#include<stdio.h>
int main(){
int sr;
int a;
first:do{
printf("输入一个数字");
sr=scanf("%d",&a);
} while(sr!=1);
while(!(1<=a&&a<=5)){
sr=scanf("%d",&a);
if(sr!=1){
printf("重新输入");
goto first ;
}
}
return 0;
}
为什么我输入 q就是无限循环 第一个printf ?我想做一个输入的限制 让输入只能是1到5的数字
答案:1 悬赏:30
解决时间 2021-03-09 01:51
- 提问者网友:伪情浪人
- 2021-03-08 22:51
最佳答案
- 二级知识专家网友:猎杀温柔
- 2021-03-08 23:45
你的scanf中回车键也被算入字符了所以循环两次,在下面加getch(),头文件是#include<conio.h>来抵消那个回车。
就像这样:
#include<stdio.h>
#include<conio.h>
int main()
{
int a=0;
for(int b;b<4;b++)
{
printf("\n!");
printf("\n*");
char c;
scanf("%c",&c);
getch();
if(c=='a')
{
printf("!");
a+=10;
}
else
{
printf("!");
printf("!");
a+=5;
}
}
printf("%d",a);
}
就像这样:
#include<stdio.h>
#include<conio.h>
int main()
{
int a=0;
for(int b;b<4;b++)
{
printf("\n!");
printf("\n*");
char c;
scanf("%c",&c);
getch();
if(c=='a')
{
printf("!");
a+=10;
}
else
{
printf("!");
printf("!");
a+=5;
}
}
printf("%d",a);
}
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯