标题:[求助]POW函数的问题
只看楼主
flyaway57
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-3-28
 问题点数:0 回复次数:2 
[求助]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 
2007-10-28 21:01
dodober
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2007-10-23
得分:0 
pow()返回的值为double类型的,用%d输出会出错!
2007-10-28 21:48
flyaway57
Rank: 1
等 级:新手上路
帖 子:37
专家分:0
注 册:2007-3-28
得分:0 
非常感谢
我改了改数据定义,现在可以了
以前的时候用的不是这个Dev,那个编译器可以通过,自己就没管过,没想到用了Dev就成这样了,还是自己写不够严密啊

戒骄戒躁
2007-10-29 00:08



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-181498-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.152307 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved