一道简单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);
}
错在哪里?
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;有问题