我寫了下面的代碼來打印兩個整數之間的阿姆斯特朗數。但我無法找到錯誤,因爲代碼對我來說很好。請幫忙。程序打印在兩個整數之間的阿姆斯特朗數在c。無法找到代碼中的錯誤
void main()
{
int a,b;
printf("Enter the starting limit");
scanf("%d",&a);
printf("Enter the ending limit");
scanf("%d",&b);
int i;
int sum=0;
for(i=a+1;i<b;i++)
{
char word[50];
sprintf(word,"%d",i);
int temp=strlen(word);
int j;
for(j=0;j<temp;j++)
{
int c=i%10;
sum+=pow(c,temp);
i=i/10;
}
if (sum==i)
{
printf("%d",i);
}
}
}
'pow'使用浮點數,例如可能會生成'24.9999999'而不是'25'。 –
有沒有其他方法可以建議? –
對於整數,它只是乘法,例如'pow(5,3)'與'5 * 5 * 5'相同。 –