永发信息网

C++里编个简单的公式p=(1+r)^n,怎么老错?

答案:7  悬赏:60  手机版
解决时间 2021-02-15 12:03
  • 提问者网友:疯子也有疯子的情调
  • 2021-02-14 22:36
C++里编个简单的公式p=(1+r)^n,怎么老错?
最佳答案
  • 五星知识达人网友:七十二街
  • 2021-02-14 22:46
^是按位运算符:异或,并不是数学上的次方运算,要想计算a的b次方,需要使用pow(a,b)。
pow原型为:double pow( double x, double y );
头文件:math.h/cmath(C++中)
功能:计算x的y次幂。
返回值:x不能为负数且y为小数,或者x为0且y小于等于0,返回幂指数的结果。
返回类型:double型,int,float会给与警告!
例如:
#include
#include
int main()
{
  double r,n,p;
scanf("%lf%lf",&r,&n);
p=pow((1+r),n); 
printf("p=%lf
",p);
return 0;
}
全部回答
  • 1楼网友:第幾種人
  • 2021-02-15 04:35
r没有初始化。
  • 2楼网友:撞了怀
  • 2021-02-15 03:47
r是小数应该是用float或double型。另外那个指数的也不对,应该用pow(a,b)函数来求
  • 3楼网友:一把行者刀
  • 2021-02-15 03:22
C语言里不能用^
只能一个一个乘 *
  • 4楼网友:轻熟杀无赦
  • 2021-02-15 02:13
#include
int main()
{
int i,n;
double r,p;// double
printf("Input r n:");
scanf("%lf %d",&r,&n);//&
p=1+r;//
for(i=1;ip= p*(1+r);// not use function
printf("p=%g ",p);
return 0;
}
  • 5楼网友:野味小生
  • 2021-02-15 00:38
#include
#include
int main()
{
int n,p;
double r;
scanf("%f,%f",&n,&p);
p=pow(1+r,n);
printf("p=%d\n",p);
return 0;
}
话说 scanf("%f,%f",&n,&p);这一行我擅自给你改了个 "%f,%f",通常来说都会以一个逗号来作为两个数的分隔符的
爪机写的代码,c4droid运行成功,球给分(=口=)追问我运行了下,不行啊,不对%>_<%
  • 6楼网友:梦中风几里
  • 2021-02-14 23:44

你的r是小数,但是定义的类型是int(整数)型,可以定义为double型。而且输入时scanf()里面输入的是n和p,根本没有输入r,然后就拿r来计算了。另外,既然r是小数(用的double型),计算后得到的答案也会是double型,所以p也要定义为double型。最后就是^符号的问题了,^在C语言中不是运算符号,不能用来计算。可以像楼上说的那样调用pow()函数来计算。pow()函数在math.h文件中,在头上加上“#include”。pow()具体用法可以百度。#include
#include
int main()
{
double r,p,n;
scanf("%lf %lf",&r,&n);
p=pow(1+r,n);
printf("p=%lf ",p);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯