发布网友 发布时间:2022-08-17 20:47
共2个回答
热心网友 时间:2023-10-14 02:42
你的程序主要问题是pow函数返回的是double类型的数,需要强制转换成long型整数,
sum每计算完一个数要重置为0,还有就是输出语句printf函数的变量不需要取地址符.
改完的程序如下(见图,改动的地方见注释)
热心网友 时间:2023-10-14 02:43
#include<stdio.h>
#include<math.h>
int main(void)
{ int N;
int i2;
long i,sum=0;
scanf("%d",&N);
for(i=pow(10,N-1); i<pow(10,N); i++)
{ sum=0;
for(i2=N; i2>0; i2--)
{ sum+=pow(i%(long)pow(10,i2)/(long)pow(10,i2-1),N);
}
if(sum==i) printf("%ld\n",i);
}
return 0;
}
写得太过复杂了。上述是在原程序的基础上作最小改动的结果。