当前位置: 代码迷 >> C语言 >> [求助]POW函数的问题
  详细解决方案

[求助]POW函数的问题

热度:261   发布时间:2007-10-28 21:01:43.0
[求助]POW函数的问题
#include<stdio.h>
#include<math.h>
int main(void)
{
unsigned int n,i,j;
long sum=0;
unsigned int name[]={1,2,3,4,5,6,7,8,9};
while(1)
{
char flag;
long temp=0,sum=0;
printf("Please Enter a Number:");
scanf("%d",&n);
for(j=0;j<n;j++)
{
long name2=0;
for(i=0;i<=j;i++)
{
temp=name[i]*pow(10,(j-i)); //这个地方有问题
name2+=temp;
}
sum+=name2;
}
printf("sum=%ld",sum);
printf("\nExit(Y/N)\n");
while(1)
{
scanf("%c",&flag);
if('Y'==flag||'y'==flag)
{
flag = 1;
break;
}
if(flag=='n'||flag=='N')
{
break;
}
}
if(flag==1)
{
flag = 0;
break;
}
}
getchar();
return 0;
}
在我标注的地方,当输入的n大于3以后,pow()函数就会出现问题,pow(10,1)=10,但是pow(10,2)却等于99,以后的是999,9999,不知道那里出了问题
我用的是Dev-C++4.9.9.2
请各位大侠帮帮忙

[此贴子已经被作者于2007-10-28 21:11:05编辑过]

搜索更多相关的解决方案: POW  函数  int  long  name  

----------------解决方案--------------------------------------------------------
pow()返回的值为double类型的,用%d输出会出错!
----------------解决方案--------------------------------------------------------
非常感谢
我改了改数据定义,现在可以了
以前的时候用的不是这个Dev,那个编译器可以通过,自己就没管过,没想到用了Dev就成这样了,还是自己写不够严密啊
----------------解决方案--------------------------------------------------------
  相关解决方案