使用 pow() 面对特定输入的问题
Facing problem with a specific input using pow()
#include<stdio.h>
#include<math.h>
int main()
{
int n, num, sum=0, count=0, a, remain=0;
printf("Enter a number : ");
scanf("%d", &num);
a=num;
n=num;
while(a!=0)
{
a=a/10;
count++;
}
while(n!=0)
{
remain=n%10;
sum=sum+pow(remain, count);
printf("%d\n", sum);
n=n/10;
}
if(sum==num)
printf("Armstrong Number");
else
printf("Not an Armstrong Number");
return 0;
}
伙计们,我正在尝试制作一个程序来检查一个数字是否是阿姆斯壮数字。我正面临这个问题,特别是将“153”作为输入。该程序适用于各种输入,但编译器在添加 153 时表现出异常行为。我还将附加带有不同输入的输出,明确显示 'sum' 变量中数字的添加。
输出:
Enter a number : 153
27
151
152
Not an Armstrong Number
Enter a number : 371
1
344
371
Armstrong Number
pow
returns a double
,这意味着您可能会遇到奇怪的舍入问题。您可能需要考虑实施自己的 integer exponentiation function.
#include<stdio.h>
#include<math.h>
int main()
{
int n, num, sum=0, count=0, a, remain=0;
printf("Enter a number : ");
scanf("%d", &num);
a=num;
n=num;
while(a!=0)
{
a=a/10;
count++;
}
while(n!=0)
{
remain=n%10;
sum=sum+pow(remain, count);
printf("%d\n", sum);
n=n/10;
}
if(sum==num)
printf("Armstrong Number");
else
printf("Not an Armstrong Number");
return 0;
}
伙计们,我正在尝试制作一个程序来检查一个数字是否是阿姆斯壮数字。我正面临这个问题,特别是将“153”作为输入。该程序适用于各种输入,但编译器在添加 153 时表现出异常行为。我还将附加带有不同输入的输出,明确显示 'sum' 变量中数字的添加。
输出:
Enter a number : 153
27
151
152
Not an Armstrong Number
Enter a number : 371
1
344
371
Armstrong Number
pow
returns a double
,这意味着您可能会遇到奇怪的舍入问题。您可能需要考虑实施自己的 integer exponentiation function.