#include"stdio.h"
main()
{int a,b,c,x,s=0,n;
scanf("%d",&n);
for(s=100;s<=n;s++)
{x=s;
a=s/100;
s=s%100;
b=s/10;
s=s%10;
c=s;
if(aaa+bbb+ccc==x)
printf("%d\n",x);
}
}
为什么这样打出来全是11111111111…麻烦解释一下
因为你在循环代码里修改了循环变量s啊
你应该在循环中将s全部改为x,将x改为s
#include"stdio.h"
int main()
{int a,b,c,x,s=0,n;
scanf("%d",&n);
for(s=100;s<=n;s++)
{x=s;
a=x/100;
x=x%100;
b=x/10;
x=x%10;
c=x;
if(a*a*a+b*b*b+c*c*c==s)
printf("%d\n",s);
}
}
您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!修改如下,供参考:
#include"stdio.h"
main()
{
int a,b,c,x,s=0,n;
scanf("%d",&n);
for(s=100;s<=n;s++)
{
x=s;
a=s/100;
//s=s%100; 修改
b=s/10%10; //b=s/10; 修改
//s=s%10; 修改
c=s%10; //c = s; 修改
if(a*a*a+b*b*b+c*c*c == x)
printf("%d\n",x);
}
}
for循环里的s不要动,s的值是循环结束的标志,另外赋一个值去做运算,你这样写循环到最后s一直是0到10,没意义,没有遍历100到n,for循环写成下面这样就对了
x=s;
a=x/100;
x=x%100;
b=x/10;
x=x%10;
c=x;
if(aaa+bbb+ccc==s)
printf("%d\n",s);