新微赢技术网

标题: 急啊!!!!大虾帮忙看看啊~~~ [打印本页]

作者: 灬☆爱你    时间: 2009-10-31 01:08
标题: 急啊!!!!大虾帮忙看看啊~~~
运行就陷入死循环!!!!!大虾帮忙啊
//输入任一自然数,求其各位数平方和,循环此操作,最终得到1或45,编程并验证。
#include<stdio.h> #include<math.h> void main() { int s; int sum=0; printf("请输入一个自然数:\n"); scanf("%d",&s);//接收自然数
while(sum!=1||45) {
while(s>0) { sum+=(s%10)*(s%10); //求s%10的平方 s=s/10; } s=sum;
}
printf("结果是:%d\n",sum); }
作者: 大陆猪头    时间: 2009-10-31 01:08
这个嘛你看你的while循环啊,什么叫做while(sum!=1||45)????不死才怪了呢!!
应该是while(sum!=1||sum!=45)
作者: 兰桂枋    时间: 2009-10-31 01:08
我修改后:
#include<stdio.h> #include<math.h> void main() { int s; int sum=0; printf("请输入一个自然数:\n"); scanf("%d",&s);//接收自然数
while(sum!=1||sum!=45) {
sum=0;
while(s>0) { sum+=(s%10)*(s%10); //求s%10的平方 s=s/10; }
s=sum; } printf("结果是:/n",s); }
还是死循环啊,大虾棒棒我
作者: ︶ㄣ帅々︷`    时间: 2009-10-31 01:08
错了不好意思啦,应该是while(sum!=1&amp;&amp;sum!=45)
作者: 酷aiq兒kuku    时间: 2009-10-31 01:08
由于我经常出这种错误,所以刚才没太仔细想,如果用||的话sum==1的就是0,1,sum==45就是1,0;而无论是0,1还是1,0都是真,所以要1,0或0,1为假,所以应该是用&amp;&amp;,不好意思啦。
作者: ㄣ紸縡のoァ    时间: 2009-10-31 01:08
另外 我可不是什么大虾,有问题大家一起切磋就是了。
作者: 枫之泪-天涯    时间: 2009-10-31 01:08
while(sum!=1||45)
就是这一句
作者: 小滋    时间: 2009-11-5 12:05
够震撼!够创新!!




欢迎光临 新微赢技术网 (http://bbs.weiying.cn/) Powered by Discuz! X3.2