吾爱姚吕婧妍 发表于 2018-11-26 21:15

11.26 小白的每日一c

//例题 函数的嵌套 分享
/*设计一个常用圆形体体积的计算器,采用命令方式输入1,2,3,分别选择计算球体,圆柱体,圆锥体的体积,并输入函数所需的相应参数。*//*常用圆形体的体积计算器,1:计算球体,2:计算圆柱体,3:计算圆锥体*/
#include<stdio.h>
#include<math.h>
#define PI 3.141592654
void cel(int a);//switch函数声明
double vol_ball(void);// 球 柱 锥 函数声明
double vol_cybline(void);
double vol_cone();

int main()
{
        int n;
        while(1) /*永久循环 ,直到输入非1-3的数字停 */
        {      /*永久循环 通过循环体中break 语句结束循环 */
        printf("输入数字1 求球体的体积\n");
        printf("输入数字2 求圆柱体的体积\n");
        printf("输入数字3 求圆锥体的体积\n");
        printf ("输入其他 啥也没有\n");
        printf("请输入: "); //输入提示
        scanf("%d",&n);
        if(n<1||n>3)   /*输入非1-3的数字,循环结束 */
        {
                break;
        }
        else         /*输入1-3,调用cal()*/
        {
                cel(n);
        }
        }
        return 0;
}

void cel(int n)
{
        switch (n)
                {
                        case 1:
                                printf("球体的体积:%.2f\n",vol_ball());
                                break;
                        case 2:
                                printf("圆柱体的体积:%.2f\n",vol_cybline());
                                break;
                        case 3:
                                printf("圆锥体的体积:%.2f\n", vol_cone());
                                break;
                                       
                }
}
//计算球体的体积v=4/3*PI*r*r*r
double vol_ball(void)
{
        double r;
        printf("输入球的半径");
        scanf("%lf",&r);
        return(4/3*PI*r*r*r);
}
//计算圆柱体的体积V=PI*r*r*h 底面积*高
double vol_cybline()
{
        double r,h;
        printf("r的值:");
        scanf("%lf",&r);
        printf("h的值:");
        scanf("%lf",&h);
        return(PI*r*r*h) ;
}

//计算 圆锥体的体积v=h/3*PI*r*r
double vol_cone()
{
        double r,h;
        printf("r的值:");
        scanf("%lf",&r);
        printf("h的值:");
        scanf("%lf",&h);
        return(h/3*PI*r*r) ;
}


//计算n的阶乘之递归
#include<stdio.h>
double fact(int n);

int main()
{
        int n;

        printf("Input you want to express number : ");
        scanf("%d",&n);
        printf("%d ! == %.0f ",n,fact(n));
        return 0;
}

double fact(int n)
{
    double result;
        if(n==1||n==0)
        result=1;
        else
        result=n*fact(n-1);
       
        return result;
       
}




nj001 发表于 2018-11-27 23:16

终于有个能看懂的代码了:'(weeqw
楼主,第二个源代码里的if里的条件为什么还要用n==0?

ouch114 发表于 2018-11-26 21:37

可以的,不过你的花括号用的有点多

追寻星辰大海 发表于 2018-11-26 22:07

这是什么编辑器?

吾爱姚吕婧妍 发表于 2018-11-27 20:33

ouch114 发表于 2018-11-26 21:37
可以的,不过你的花括号用的有点多

习惯了 以后尽量减少 谢谢

吾爱姚吕婧妍 发表于 2018-11-27 20:38

追寻星辰大海 发表于 2018-11-26 22:07
这是什么编辑器?

是这个Dec c++
如果希望尝试在自己的电脑上编程,课程所推荐的C语言编程软件为Dev C++,它的官网是:https://sourceforge.net/projects/orwelldevcpp/?source=directory,这个软件可以用于所有的MS Windows版本。推荐下载5.11版,如果你的Windows不是Win10,则只能使用5.10版。5.10版的直接下载链接请戳:https://sourceforge.net/projects/orwelldevcpp/files/Setup%20Releases/Dev-Cpp%205.10%20TDM-GCC%204.8.1%20Setup.exe/download。

吾爱姚吕婧妍 发表于 2018-12-2 17:27

nj001 发表于 2018-11-27 23:16
终于有个能看懂的代码了
楼主,第二个源代码里的if里的条件为什么还要用n==0?

这是一个数学问题 因为0 的阶乘是1哦!
页: [1]
查看完整版本: 11.26 小白的每日一c