实验4 在分支循环结构中调用自定义函数

1.利用循环计算多个圆柱体体积
要求:
1. 当输入的半径r或h<=0时,提示输入错误,重新输入;
2. r和h为整形;
3. 利用变量n代表多少个圆柱需要计算,n由键盘输入;
4. 连续计算n个圆柱体体积;
5. 体积计算过程放到自定义函数中实现。    

 

/*利用循环计算多个圆柱体体积*/

#include<stdio.h>
int main(void)
{
    int i,n,r,h;
    double v;
    double cylinder(int r,int h);    /*定义自定义函数*/

    printf("Enter n:");
    scanf("%d",&n);

    for(i=1;i<=n;i++)                /*循环计算*/
    {
        printf("Enter r:");
        scanf("%d",&r);
        printf("Enter h:");
        scanf("%d",&h);

        if(r,h<=0){                         /*判断是否符合条件*/
            printf("输入错误,重新输入");
        }
        else{                                  /*若符合,则代入计算*/
            v=cylinder(r,h);
            printf("v=%.2f\n",v);
        }
    }
    return 0;
}

    double cylinder(int r,int h)             /*定义求圆柱体积的函数*/
    {
        double result;
        result=3.14*r*r*h;                   /*计算圆柱体积*/
        return result;                       /*返回结果*/
    }  

 

2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分两个“阶梯”:月用电量 50 千瓦时以内的,电价为 0.53 元/千瓦时;超过 50 千瓦时的用电量,电价上调 0.05 元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。
要求:
1. 当输入用电量<=0时,提示输入错误,重新输入;    

 

/*计算电费*/

#include<stdio.h>
int main(void)
{
    double w,p;                                 /*定义2个浮点型变量*/
    printf("Enter w:");
    scanf("%lf",&w);

    if(w<=0){                                  /*用多分支结构 分段计算电费*/
        printf("输入错误,请重新输入");
    }
    else if(w<50){
        p=0.53*w;
    }
    else{
        p=0.53*50+(w-50)*0.58;
    }
    printf("p=%.2f\n",p);                    /*输出结果*/
        return 0;
}

 

 3.同上题,计算多个用户的电费(元)。
要求:
1. 当输入用电量<=0时,提示输入错误,重新输入;
2. 利用变量m代表多少个用户
3. 连续计算m个用户的电费;
4. 计算电费的过程放到自定义函数中实现,提示:将上题的电费计算过程放到自定义函数中。

 

/*计算并输出多个用户应支付的电费*/
#include<stdio.h>
int main(void)
{
    int m,i;                         /*m为用户的个数*/
    double w,p;                       /*w为用电的瓦数,p为要计算的价格*/
    double cylinder(double w);            /*定义函数*/

    printf("Enter m:");
    scanf("%d",&m);

    for(i=1;i<=m;i++){                     /*循环计算m个用户的电费*/
        printf("Enter w:");
        scanf("%lf",&w);
        if(w<=0){                               
            printf("输入错误,重新输入");
        }
        else{
            p=cylinder(w);
            printf("p=%.2f\n",p);
        }
    }
    return 0;
}
  
         double cylinder(double w)              /*调用函数*/
        {
        double result;
        if(w<50){                                /*计算结果*/
            result=0.53*w;
        }
        else{
            result=0.53*50+(w-50)*0.58;
        }
        return result;                          /*返回结果*/
        }
    

 

 

 

posted @ 2013-11-03 15:40  simple9495  阅读(258)  评论(0编辑  收藏  举报