·第56课:实参与形参随堂实战
·例子:计算图形的面积
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
/*
圆:s = PI * r * r
矩形: s = width * height
三角形:s = width * height / 2
*/
//根据传入的半径,返回圆面积
//************************函数原型
double calcCircle(double);
double calcRectangle(double,double);
double calcTriangular(double,double);
int validate(double);
//************************函数定义
double calcCircle(double r) //圆
{
//pow函数可以自己定义
double s = 3.14*pow(r,2);
//返回计算好的面积值
return s;
}
double calcRectangle(double weight, double height) //矩形
{
return weight*height;
}
double calcTriangular(double weight, double height) //三角型
{
return weight*height/2;
}
int validate(double num)
{
return num > 0 ; //如果num大于0,会返回一个非零值,表示真。
}
//************************函数调用
int main()
{
double radius; //用户输入半径
double weight, height; //图形的宽和高
double s; //图形的面积
int choice; //用户的选择
printf("本系统支持三种图形的面积计算,请选择:\n");
printf("1、圆\n");
printf("2、矩形\n");
printf("3、三角型\n");
scanf("%d",&choice);
switch(choice)
{
case 1:
printf("请输入圆半径:");
do{
scanf("%lf",&radius);//录入
if(!validate(radius))//如果没有通过验证,就打印一句提示
{
printf("所录入的内容不能为负,请重新输入一个正数!:");
}
}while(!validate(radius));//当验证不通过的时候重新录入
//需要对用户的输入进行非负验证/让用户输入正确的值/拿到用户所输入的正确值
s = calcCircle(radius);
printf("图形的面积为:%.2lf\n",s);
break;
case 2:
printf("请输入矩形的宽和高:");
do{
scanf("%lf%lf",&weight,&height);//录入
if((!validate(weight))||(!validate(height)))//如果没有通过验证,就打印一句提示
{
printf("所录入的内容不能为负,请重新输入2个正数!:");
}
}while(!validate(radius));//当验证不通过的时候重新录入
//需要对用户的输入进行非负验证/让用户输入正确的值/拿到用户所输入的正确值
s = calcRectangle(weight,height);
printf("图形的面积为:%.2lf\n",s);
break;
case 3:
printf("请输入三角型的宽和高:");
do{
scanf("%lf%lf",&weight,&height);//录入
if((!validate(weight))||(!validate(height)))//如果没有通过验证,就打印一句提示
{
printf("所录入的内容不能为负,请重新输入2个正数!:");
}
}while(!validate(radius));//当验证不通过的时候重新录入
//需要对用户的输入进行非负验证/让用户输入正确的值/拿到用户所输入的正确值
s = calcTriangular(weight,height);
printf("图形的面积为:%.2lf\n",s);
break;
default:
printf("本系统只支持3种图形,请在1-3之间选择!");
}
return 0;
}