第二次机器人大战练级:C语言循环结构问题,高手进啊!!

来源:百度文库 编辑:高校问答 时间:2024/04/28 10:11:20
有以下程序:
#include<stdio.h>
main()
{
int n,sum;
n=0;sum=0;
while(n<10);
{
sum+=(n++);
printf("%d\n",sum);
}
printf("n=%d\n",n);
}
程序为什么会陷入死循环?
高手帮忙解答一下啊!

while(n<10);
不应有分号,有了分号表示while循环体是;,而;中不会对n起任何变化,所以n永远<10,也就死循环了

while(n<10);
注意后面有个 ;表示空语句
一个;就代表一条语句,虽然你什么都没些,但while(n<10);
就代表当n<10时 什么都不做然后进入下一次判断
就死循环了

楼上不不对哦
前面几为说的不错
关键是while后的空语句
如果把分号去掉以后,进入循环体,n就不再是0了,而是n++;

while(n<10);
没有分号

while(n<10);
呵呵,太大意了把,这个地方也加了分号,不过确实很难发现呢!

补充一下上面三位的,你n的初始为0,因为0<10所以程序永远陷入
while(0<10)
{
;
}
这样一个循环中