|
调用pow(a,b) 求幂函数时出错
当a=10 b=2时 函数返回99
自己编写函数
int pow1(int a,int b)
{
int i,n=1;
for(i=0;i<b;i++)
n*=a;
return n;
}
能得到正确结果100
可以确定下是不是gcc核的问题
发布下调用pow函数时的出错程序:
#include <stdio.h>
int main()
{
int num=0,a=0,n=0,m=0,l=0,b=0;
next:
printf("THE MathML is NUM=a+aa+aaa+aaaa+.....x\n");
printf("THE x IS pow(10,n-1)a+pow(10,n-2)a....pow(10,n-n)a\n");
printf("Enter a = ");
scanf("%d",&a);
printf("Enter n = ");
scanf("%d",&n);
for(l=1;l<=n;l++)
{
for(m=0;m<l;m++)
b+=pow(10,m)*a;
num+=b;
b=0;
}
printf("WHEN a = %d , n = %d , NUM = %d \n",a,n,num);
printf("********************\n\n");
num=0;
goto next;
while(1);
return 0;
}
再发布下自己写pow1函数时,结果正确的程序:
#include <stdio.h>
int pow1(int a,int b)
{
int i,n=1;
for(i=0;i<b;i++)
n*=a;
return n;
}
int main()
{
int num=0,a=0,n=0,m=0,l=0,b=0;
next:
printf("THE MathML is NUM=a+aa+aaa+aaaa+.....x\n");
printf("THE x IS pow(10,n-1)a+pow(10,n-2)a....pow(10,n-n)a\n");
printf("Enter a = ");
scanf("%d",&a);
printf("Enter n = ");
scanf("%d",&n);
for(l=1;l<=n;l++)
{
for(m=0;m<l;m++)
b+=pow1(10,m)*a;
num+=b;
b=0;
}
printf("WHEN a = %d , n = %d , NUM = %d \n",a,n,num);
printf("********************\n\n");
num=0;
goto next;
while(1);
return 0;
}
|
|