输出仅为 0 和 1。
int main()
{
int i, n=0, rem, sum=0, temp;
for(i=0; i<1000; i++) {
temp = n;
while(temp>0){
rem = temp%10;
sum += rem*rem*rem;
temp /= 10;
}
if (sum == i){
printf("%d ", i);
}
n++;
}
最佳答案
对于每个值总和必须为零,这是第一次校正。并且 i 必须分配给变量 temp,因为必须检查 i 值是否是阿姆斯特朗数。进行更改它将起作用。
#include<stdio.h>
int main()
{
int i, rem, sum=0, temp;
for(i=0; i<1000; i++)
{
temp = i;
sum=0;
while(temp>0)
{
rem = temp%10;
sum += rem*rem*rem;
temp /= 10;
}
if (sum == i)
{
printf("\n%d ", i);
}
}
输出
0
1
153
370
371
第407章
关于c - c中的阿姆斯特朗数程序输出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48316792/