C语言中变量的平方怎么输入

都可以用递归搞定:#include<stdio.h>doublefactorial(intn){returnn>0?n*factorial(n-1):1;}doublep... 都可以用递归搞定:

#include <stdio.h>

double factorial(int n)
{
return n > 0 ? n * factorial(n-1) : 1;
}

double power(int x, int y)
{
if(y > 0)
return y > 0 ? x * power(x, y-1) : 1;
else
return 1 / (y < 0 ? x * power(x, (-y)-1) : 1);
}

int main()
{
double a = power(3, 5); // 3^5
double b = power(3, -5);// 3 ^-5
double fac = factorial(10); // 10! = 10 * 9 * 8 *````* 2 * 1
printf("10! = %lf\n", fac);
printf("3的 5次幂: %lf\n", a);
printf("3的-5次幂: %lf\n", b);
}

求解释这段代码?要详细的哦,比如double factorial(int n)这是干什么的呀?
展开
 我来答
风若远去何人留
推荐于2017-09-21 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450132
专业C/C++软件开发

向TA提问 私信TA
展开全部

变量平方有如下三种常用的输入方法:

1 直接输入法。

这种方法是利用平方的数学定义,直接输入两个相同变量的乘法形式。

比如

int a = 10;

int a2;

a2 = a*a;

这里a2的值就是a的平方。

这种方法的好处是简单明了,而且适用于各种类型。

缺点是如果输入高次方而不是平方,比如输入10次方,就需要连续打10个a相乘,既不易输入,也不容易阅读,还容易出错。


2 利用库函数法。

在math.h中有一个库函数pow,其原型为

double pow(double a, double b);

功能是计算a的b次幂,并返回该结果。

比如这个代码:

#include <math.h>
#include <stdio.h>
int main()
{
    double a = 1.23;
    printf("qrt(a) = %lf\n", pow(a,2));//计算a的平方并输出
    return 0;
}

该方法好处是简单易懂,对于高次幂计算同样输入简单,易于编写,阅读和维护。

缺点是只适用于浮点数,如果用于整型,会在运算中做默认的类型转换,由于精度问题,结果可能会有偏差,适用于精度要求不是太高的情况


3 使用自定义函数。

自己定义求幂函数。该方法可以用于整型求高次幂,当然也可以用于求平方。

从原理上来说,如果修改类型用于做浮点数幂运算也是可以的,不过既然有库函数pow那就没必要用自定义函数了。

参考函数如下

int qrt(int a, int b)//求a的b次幂并返回
{
    int i,r=1;
    for(i = 0; i < b; i ++)
        r *= a;//依次乘b次,即乘方的数学定义
    
    return r;
}

函数类型及返回值根据计算需要的数据规模随时修改,可以为任意整型类型。

这样在计算乘方时可以调用该函数,调用方法和之前介绍的pow函数类似。

该种方法的缺点为需要自己写函数,代码量比前两种都要大。


以上三种方法各有优劣,根据实际需要可以自行选择。如果只是计算平方,那么推荐使用第一种方法。

翔龙翱翔
推荐于2017-09-14 · 超过18用户采纳过TA的回答
知道答主
回答量:130
采纳率:66%
帮助的人:18.4万
展开全部
先看power()函数,
double power(int x, int y)
{
if(y > 0)
return y > 0 ? x * power(x, y-1) : 1;
else
return 1 / (y < 0 ? x * 0,power(x, (-y)-1) : 1);
}

这个函数就是求x的y次方。当在main()函数中调用它时,这个函数开始执行,传递的参数是3和5,执行过程就是:1,判断5是否大于0,5是大于0的,条件成立,第一次返回3*power(3,4),这里power(3,4)继续执行,返回3*power(3,3),继续,power(3,3)返回3*power(3,2),继续,power(3,2)返回3*power(3,1),继续,power(3,1)返回3*power(3,0),power(3,0)就直接返回1了,所以power(3,5)最后返回的就是3*3*3*3*3*1,其他的依此类推,就行了。希望对你有帮助。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天云小店
2018-01-30 · TA获得超过2.8万个赞
知道大有可为答主
回答量:3281
采纳率:91%
帮助的人:786万
展开全部
在C++中,变量A的平方可以有2种方式进行输入:

1、直接本身相乘A*A
2、用函数pow进行求变量A的平方,即pow(A, 2)
注:函数pow的用法如下:
函数格式:double pow(double x, double y);
功 能:计算x的y次幂
返 回 值:计算结果
当使用pow函数时,需要将头文件math.h包含进源文件中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友0113ba9
2013-03-18 · TA获得超过470个赞
知道小有建树答主
回答量:208
采纳率:0%
帮助的人:135万
展开全部
double factorial(int n) 这个是计算 n的阶乘的 就是n*(n-1)*(n-2)*...*2*1

double power(int x, int y)这个是计算 x的y次方的
追问
全不解释一下,可以吗?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式