求解两次打印出来的值怎么不一样?
程序1:#include<stdio.h>
int x,s,i,y,i1;
main(){
x=5;
for(y=2;y<x;y=y++)
{
i=x/y;
s=y*i;
printf("%d\t%d\t%d\t%d\t\n",i,y,x,s);
}
}打印出来的是
http://bbs.fishc.com/forum.php?mod=image&aid=18926&size=300x300&key=d84247aa5874dff0&nocache=yes&type=fixnone
程序2:#include<stdio.h>
int x,s,i,y,i1; main(){x=5;for(y=2;y<x;y=y++){ i=x/y; s=y*i; printf("%d\t%d\t%d\t%d\t\n",i,y,x,s);
if(s=x) printf("%d\t%d\t%d\t%d\t",i,y,x,s);
}} 打印出来的却是http://bbs.fishc.com/forum.php?mod=image&aid=18927&size=300x300&key=6faa06024eab5df3&nocache=yes&type=fixnone
for( y= 2; y<x; y= y++ )
我用的C-Free编译器,
这个赋值语句会使整个for 陷入死循环。(i++ 或者 i= i+1 就不会)
y++ 已经等于 y=y+1了
再有就是y++是先使用Y的值,再进行++操作,
所以,写y++或者y=y+1皆可。
还有,就是main函数一定是int类型,且有返回值的。
这样才是标准的C语言语法。
再有就是下面的if ( x=y ) 。。明显有问题。这里是赋值语句,所以会永远为true,
然后进入if 执行里面的语句。
请认真哦~{:5_91:}
求解释,求教育 为什么会一样 ??
难道楼主以为 if(s=x) printf("%d\t%d\t%d\t%d\t",i,y,x,s); 是摆设?? 楼主啊,if(s=x)写错了啊!应该是if(s==x)吧!!! y=y++这句貌似有问题!!1 浮砂 发表于 2013-12-9 18:20 static/image/common/back.gif
for( y= 2; y
谢谢,刚刚学,想写断找质数的代码,突然很想做出来,原来是自己知道的东西太少了,犯的错误太多,以后一定慢慢学,好好学 谢谢各位了!这平台真强大 路过看看= =!
页:
[1]