C语言pow函数的输出结果不正确

#include <stdio.h>
#include <math.h>
int main()
{
int cm(int x);
double r,n,p;
scanf("%f%d", &r,&n);
r=r+1;
p=pow(r,n);
printf("%f\n", p);
getchar();
return 0;
}

以上是代码,题目要求是根据增长率和年数求出比原本高了多少个百分比
公式是p=(1+r)^n p是倍率 r是增长率 n是年数
test输入0.09回车10回车
结果输出0.000000
问下错误

第1个回答  推荐于2018-04-12
double r,n,p;// 定义为 int n 对应下面%d
scanf("%f%d", &r,&n);//double 型 格式输入 %lf
r=r+1;
p=pow(r,n);
printf("%f\n", p);//改为%lf
这里你 用float型 输入输出double型数据 会造成数据缺失本回答被提问者和网友采纳
第2个回答  2012-11-05
printf("%f\n", p);改为 printf("%lf\n", p); 因为p是double 型,所以需要用%lf格式
第3个回答  2012-11-05
注意数据类型和scanf、printf中要一致,double类型的格式为 %lf,而不是 %f 不是%n
第4个回答  2012-11-05
把%f 改成%lf
第5个回答  2012-11-05
你的scanf用的不对,还有你double类型的n你却用%d读入

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网