2つの整数間にアームストロング数を出力する次のコードを書いた。しかし、私はコードがうまく見えるので、間違いを見つけることができません。助けてください。あなたが外for
ループの制御式ではなく、あなたがi=i/10;
でi
を変更している内部ループでi
を使用cで2つの整数の間にアームストロング数を出力するプログラム。
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'は浮動小数点を使用しています。たとえば、' 25'ではなく '24.9999999'を生成します。 –
お勧めの方法はありますか? –
整数の場合、それは単に乗算であり、例えば 'pow(5,3)'は '5 * 5 * 5'と同じです。 –