注册 登录
编程论坛 QT论坛

郁闷啊求助for语句

陈便往 发布于 2011-09-25 18:55, 1013 次点击
#include<iostream>
using namespace std;
void main()
{ int i,j,a;
int s=0;
    for(i=100;i<=1000;i++)
      {  a=i;
        while(a!=0)
         {j=a%10;
          a=a/10;
          s=s+j*j*j;}
        if(s==i)
             cout<<"这是个莲花数:"<<i<<'\t';}}
求助啊,不知道为啥啊最近编的程序用for总是出错啊;今天编着玩的也不执行啦啦求高手帮忙啊;这个程序是求莲花数的;100到1000的
6 回复
#2
czsbc2011-09-25 19:01
貌似每次循环前都应该将s初始化为0吧
#3
陈便往2011-09-25 21:11
额不是吧这里的s是个数据载体啊他是为了将数的各位数字三次方和啊
怎么回事呢?
谢谢
#4
czsbc2011-09-25 21:42
程序代码:
#include<iostream>
using namespace std;
void main()
{
    int i,j,a;
    int s=0;
    for(i=100;i<=1000;i++)
    {
        s=0;                    //注意这里...
        a=i;
        while(a!=0)
        {
            j=a%10;
            a=a/10;
            s=s+j*j*j;
        }
        if(s==i)
        cout<<"这是个莲花数:"<<i<<endl;
    }
}
 
#5
陈便往2011-09-26 22:13
呵呵谢谢啊不过这是为什么呢?s不是整个函数的变量吗
#6
czsbc2011-09-26 22:21
就是因为s是整个函数的变量
所以s的值每次都要改变
如果不置0,就是用上次的s,结果肯定不对。        

#7
陈便往2011-09-26 22:45
谢谢啊
1