中改变了全局变量 i 的值,而 i 不仅是输出结果,还是最外层 while 循环的计数器,所以这个值一旦被改变整个循环就会混乱,最后出现死循环,导致程序无限运行无法输出结果。所以题主需要一个 i 的副本来完成上述循环,而不改变 i 本身的值。 另一点,题主的 sum 变量是全局的,所以每执行一次最外层循环后就必须将其...
这样做:include <stdio.h> main(){int x,y;printf("enter x & y:\n");scanf("%d%d",&x,&y);printf("x=%d,y=%d",x,y);fflush(stdin);//这个是用来清空缓冲区中的用户输入的回车,防止影响getchar()if(x>y)printf("x=%d",x);if(y>x)printf("y=%d",y);if(x==y)printf...
原因是当你敲下回车时,代表开始统计字符数量,而C语言中,EOF常被作为文件结束的标志。你判断用EOF,当敲下回车时程序是开始执行while语句了,但是程序的输入流并未关闭,所以之后程序就不会再继续向下执行了,希望对你有帮助,如果有其他问题请追问 ...
拍入Enter健时, c语言 通常 略去 回车,而只取用 换行键。一定要输入 回车,你可以用输入 ASCII 值 13 代替。例如,你拍入数值13和Enter健,用下面程序,则 s[0] 读到回车,s[1]读到换行 :char s[10];scanf("%d",&s[0]);s[1]=getchar();printf("%c %c\n",s[0],s[1...
将i=i++修改为i++,让i值自增。题主代码中i = i++有问题,i值不会自增,循环不会结束。会先使用i值,即将1赋值给i,所以在while循环中i的值会一直是1,循环无法停止,所以回车后不会结束。
你这个是输入一个字符【需要回车来确认输入】 ,getchar() 是得到 一个字符 ,你输入的是一串字符 。建议把getchar 改成 getch 【不需要回车确认】。还有where里的判断条件不是'n'而是转义字符'\n'
是vs2010版吧 要在主函数的return 0;之前加一句system(“pause”);
立即输出一个结果;如果按你的要求改写,就是先将所有输入保存到数组等数据结构,全部输入后再输出结果...
你这个程序只有在输入的x值为-4,-3,-2,-1时,才有打印结果。大概把第7行的x=0改成x==0后,才能出现你想要的结果。