莫名其妙的循环
本帖最后由 岁寒青松 于 2022-2-9 16:28 编辑1#include<stdio.h>
2
3int main()
4{
5 int i , sum = 0 ;
6
7 while (1)
8 {
9 printf("请输入合法的数字:");
10 scanf("%d", &i );
11
12 if (i >= 0 && i <= 9)
13 {
14 sum = sum + i ;
15 }
16 else
17 {
18 printf("结果是:%d\n", sum);
19 break;
20 }
21 }
22
23 return 0;
24 }
这是我写的S1E4课后作业动动手的题目1的代码,运行时一旦输入字母,就会无限输出“请输入合法的数字:”这行字,不知道是哪出的问题,求教! 我是学Python的 我看你的那个‘’请输入合法的数字‘’是不是没赋值 然后就没有用户操作的时候所以一直打印那句话 i的初始值是0, 符合第一个分支条件, 当你输入一个字母时, scanf没有读取到整数,会进入下一行代码,并且你输入的字母一直保存在缓冲区, 所以 i 的值一直为 0,然后一直在while里不断循环 #include <stdio.h>
#include <stdlib.h>
int main()
{
char s;
int i, sum = 0;
while (1)
{
printf("请输入合法的数字:");
scanf("%s", s);
i = atoi(s);
if ((i != 0 || s == "0") && (i >= 0 && i <= 9))
{
sum = sum + i;
}
else
{
printf("结果是:%d\n", sum);
break;
}
}
return 0;
} {:5_95:} {:5_102:}{:5_107:} {:5_95:} {:5_110:} {:10_258:} {:5_102:} {:10_256:} {:10_269:} {:10_250:} {:10_266:} {:10_266:} {:10_266:} {:10_269:}
页:
[1]