C語言第56課:實參與形參隨堂實戰
阿新 • • 發佈:2018-12-29
·第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;
}