C函数调用(2)
1 //函数调用 2 3 #include <stdio.h> 4 #include <stdlib.h> 5 #include <math.h> 6 //根据传入的半径,返回圆的面积 7 double calcCircle(double); 8 9 //要对用户输入进行非负的判断 10 int validate(double); //验证输入double 的数值 是否为正数 11 12 //double input(); //输入正确的值,如果不符合,重新输入 13 //矩形 14 double calcRectangle(double,double); 15 //三角形 16 double calcTriangle(double,double); 17 18 int main() 19 { 20 21 double radius; 22 double width,height; 23 double base,heigh; 24 double s; 25 int choice; 26 27 printf("1.圆\n"); 28 printf("2.矩形\n"); 29 printf("3.三角形\n"); 30 printf("本系统只支持计算三种图形的面积,请选择:\n"); 31 scanf("%d",&choice); 32 33 34 switch(choice) 35 { 36 case 1: 37 38 printf("请输入圆的半径,我来计算面积:"); 39 40 //要对用户输入进行非负的判断 41 do 42 { 43 scanf("%lf",&radius); //录入 44 if(!validate(radius)) // 取反 不是正确的整数,就会有提示!!! 45 { 46 printf("您录入的是负数,请录入整数"); 47 } 48 49 } 50 while(!validate(radius)); //当验证不通过的时候,从新录入 51 52 s=calcCircle( radius);//调用 53 break; 54 case 2: 55 56 printf("请输入矩形的长和宽,我来计算面积:"); 57 do 58 { 59 scanf("%lf%lf",&width,&height); 60 if(!validate(width) || !validate(height)) 61 { 62 printf("您录入的是负数,请录入整数"); 63 64 } 65 } 66 while(!validate(width) || !validate(height)); 67 //验证通过 ,在调用,计算 68 s = calcRectangle(width, height); 69 break; 70 71 case 3: 72 printf("请输入三角形的底和高,我来计算面积:"); 73 do 74 { 75 scanf("%lf%lf",&base,&heigh); 76 if(!validate(base) || !validate(heigh)) 77 { 78 printf("您录入的是负数,请录入整数"); 79 } 80 } 81 82 while(!validate(base) || !validate(heigh)); 83 s = calcTriangle(base,heigh); 84 85 86 break; 87 88 default: 89 printf("本系统只支持3种图形,请在1-3之间选择!!!"); 90 } 91 92 93 printf("图形的面积为:%.2lf\n",s); 94 // printf("矩形的面积为:%.2lf\n",s); 95 // printf("三角形的面积为:%.2lf\n",s); 96 97 return 0; 98 } 99 100 101 double calcCircle(double radius) 102 { 103 104 double s = 3.14 *pow(radius,2); 105 106 //返回计算好的面积 107 return s; 108 } 109 110 111 112 113 //矩形 114 double calcRectangle(double width,double height) 115 { 116 return width * height; 117 118 } 119 120 121 122 //三角形 123 double calcTriangle(double base,double heigh) 124 { 125 return base * heigh /2; 126 127 } 128 129 130 131 //验证输入double 的数值 是否为正数 132 int validate(double num) 133 { 134 return num > 0 ; //如果num>0,会返回一个非0值,表示真 135 136 }
本文来自博客园,作者:Bytezero!,转载请注明原文链接:https://www.cnblogs.com/Bytezero/p/15072119.html