一道简单C语言问题?

来源:百度知道 编辑:UC知道 时间:2024/06/07 06:53:24
#include<stdio.h>
void main()
{
int x=0,s=0,t;
while(t=1)
(
s+=++x;
if(s==122)
break;
}

printf("%d",s);
}
错在哪里?

1楼说错了,if(s==122) break;就是当s=122时,跳出while循环,但s+=++x;与x++不同,是先调取再++,即s=s+x;s=0,x=1;s=s+x;s=1,x=2;s=3,x=3;s=6,x=4;s=10,x=5;s=15,x=6;s=21,x=7;s=28,x=8;……如此类推,s=120,s=136,无法到达122,所以无法跳出循环。

s永远不等于122.所以这个就成了死循环了

根本就不能运行。

把++X该成x++就好了

while(t=1)
有问题
t被赋值但没有使用在函数中
s+=++x;有问题