c语言次运算

在C编程中如何进行次幂的计算,还有单精度,双精度,长双精度在什么时候用~我发现有的时候用int有时用float~不懂啊~p=(1+r)^n把这个公式用C语言表示出来~... 在C编程中如何进行次幂的计算,还有单精度,双精度,长双精度在什么时候用~我发现有的时候用int 有时用float~不懂啊~
p=(1+r)^n
把这个公式用C语言表示出来~
展开
 我来答
鷹弈
2010-10-14 · TA获得超过5194个赞
知道大有可为答主
回答量:1257
采纳率:0%
帮助的人:626万
展开全部
(1)int 为整型,即数学意义上的整数(...,-1,0,1,2,...),分为有符号整型(sign int)、无符号整型(unsign int)(即数学意义上的正数)、短整型( short int )以及长整型(long int),而我们通常定义的int系统默认为sign int;
而上述四种类型int的主要区别是数值范围不同,其中sign int 的范围是
-32767到32767;unsign int 的范围是 0到65534;而 long int 范围最大,short int 范围最小,你可以去查书。也就是说你所输入的数据不能超过它的范围。
(2)float(单精度)、double(双精度)以及long double(长双精度),即数学意义上的实数(包括整数和所有小数);
而上述三种主要区别也是数值范围不同,long double 的范围最大,其次是double ,最小是 float。

选取数据类型主要是看你所用数据是整数还是实数,是正数还是负数,以及所用数据的范围而选用不同的数据类型。

方法一:(调用系统函数库)
#include "stdio.h"
#include "math.h" //调用系统函数库
main()
{
float p,r,n;
printf("请输入r和n的值\n");
scanf("%f,%f",&r,&n);
p=pow((1+r),n); //这就是所调用的函数
printf("%f\n",p);
}

方法二:(使用循环求值)
#include "stdio.h"
main()
{
float p,r,n,i;
printf("请输入r和n的值\n");
scanf("%f,%f",&r,&n);
for(p=1,i=1;i<=n;i++) //使用循环求值
p=p*(1+r);
printf("%f\n",p);
}
717370999
2010-10-13 · TA获得超过543个赞
知道小有建树答主
回答量:329
采纳率:0%
帮助的人:461万
展开全部
int类型就是整数类型,
float,double就是小数类型,你要是进行除法什么的当然要定义这种的类型了,基本平常用没有什么区别,float就是精度比double小一些,但是平常都够用了,除了进行比较精细的计算那就另当别论了。
首先你要使用#include <math.h>来包含数学头文件。
第二步,要定义p,r,n。
第三步,这个式子可以表达为:p=pow((1+r),n);
pow(a,b);就是进行a的b此方的运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0f2dc44
2010-10-14
知道答主
回答量:49
采纳率:0%
帮助的人:26.5万
展开全部
当你所要的数据有小数点是用float,如钱数价格。整数时用int。如人数等单精度,双精度,长双精是指你需要的精确度
先包含一个头文件#include“math.h”
然后就可以调用里面的函数了。
math.h
数学函数库,一些数学计算的公式的具体实现是放在math.h里,具体有:
1 三角函数
double sin (double);
double cos (double);
double tan (double);
2 反三角函数
double asin (double); 结果介于[-PI/2, PI/2]
double acos (double); 结果介于[0, PI]
double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]
3 双曲三角函数
double sinh (double);
double cosh (double);
double tanh (double);
4 指数与对数
double exp (double);
double sqrt (double);
double log (double); 以e为底的对数
double log10 (double);
double pow(double x, double y)//计算以x为底数的y次幂
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 绝对值
double fabs (double);
double cabs(struct complex znum) //求复数的绝对值
7 标准化浮点数
double frexp (double f, int *p); 标准化浮点数, f = x * 2^p, 已知f求x, p ( x介于[0.5, 1] )
double ldexp (double x, int p); 与frexp相反, 已知x, p求f
8 取整与取余
double modf (double, double*); 将参数的整数部分通过指针回传, 返回小数部分
double fmod (double, double); 返回两参数相除的余数
9其他
double hypot(double x, double y);//已知直角三角形两个直角边长度,求斜边长度
double ldexp(double x, int exponent);//计算x*(2的exponent次幂)
double poly(double x, int degree, double coeffs [] )//计算多项式
nt matherr(struct exception *e)//数学错误计算处理程序
source: 《C & C++ Code Capsules》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hui21384
2010-10-14
知道答主
回答量:9
采纳率:0%
帮助的人:0
展开全部
int i,p=1;
for (i=1;i<=n;i++)
{
p=p*(1+r);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式