程序结构main()cal () vol_cylind ()vol_ball()vol_cone ()3层结构,5个函数降低程序的构思、编写、调试的复杂度可读性好
3层结构,5个函数 降低程序的构思、编写、调试的复杂度 可读性好 程序结构 main( ) cal ( ) vol_ball ( ) vol_cylind ( ) vol_cone ( )
#definePl3.141592654void cal (int sel);例10-1源程序int main(void)( int sel;while(1 )printf("1-计算球体体积\n");printf("2-计算圆柱体积In");printf("3-计算圆锥体积In");printf("其他-退出程序运行In");printf(“请输入计算命令:");scanf("%d",&sel);if (sel < 1 I sel > 3)break;*输入非1~3,循环结束*else/*输入1~3,调用cal0*cal (sel);7return O;7
例10-1源程序 #define PI 3.141592654 void cal ( int sel ); int main(void) { int sel; while( 1 ){ printf(" 1-计算球体体积\n"); printf(" 2-计算圆柱体积\n"); printf(" 3-计算圆锥体积\n"); printf(" 其他-退出程序运行\n"); printf(“ 请输入计算命令:" ); scanf("%d",&sel); if (sel < 1 || sel > 3) break; /* 输入非1~3,循环结束 */ else cal (sel ); /* 输入1~3,调用cal() */ } return 0; }
*常用圆形体体积计算器的主控函数*void cal(intsel)double vol ball(void);double vol_cylind(void );double vol_cone(void );switch (sel)case 1:printf("球体积为:%.2fn",vol_ball());break;case 2:printf("圆柱体积为:%.2fin",vol_cylind());break;case 3:printf("圆锥体积为:%.2fln",vol_cone());break;/*计算圆锥体积V=h/3*Pl*r*r*doublevol_cone(){ doubler, h;printf("请输入圆锥的底圆半径和高:");scanf("%lf%if",&r,&h);return(P*r*r*h/3.0);7
/* 常用圆形体体积计算器的主控函数 */ void cal ( int sel ) { double vol_ball(void ); double vol_cylind(void ); double vol_cone(void ); switch (sel) { case 1: printf("球体积为:%.2f\n", vol_ball( )); break; case 2: printf("圆柱体积为:%.2f\n", vol_cylind( ) ); break; case 3: printf("圆锥体积为:%.2f\n", vol_cone( ) ); break; } } /* 计算球体体积 V=4/3*PI*r*r*r*/ double vol_ball( ) { double r ; printf("请输入球的半径:"); scanf("%lf",&r); return(4.0/3.0*PI*r*r*r); } /* 计算圆柱体积 V=PI*r*r*h */ double vol_cylind( ) { double r , h ; printf("请输入圆柱的底圆半径和高:"); scanf("%lf%lf",&r,&h); return(PI*r*r*h); } /* 计算圆锥体积 V=h/3*PI*r*r */ double vol_cone( ) { double r , h ; printf("请输入圆锥的底圆半径和高:"); scanf("%lf%lf",&r,&h); return(PI*r*r*h/3.0); }
10.1.2函数的嵌套调用顺序调用mainint main(void)y = fact(3);factmypowz = mypow(3.5, 2);maindouble fact(int n)factAmypowdouble mypow(double x, in n)t1
10.1.2 函数的嵌套调用 ◼ 顺序调用 int main(void) { . y = fact(3); . z = mypow(3.5, 2); . } double fact(int n) { . } double mypow(double x, in n) { . } main fact mypow main fact mypow
10.1.2函数的嵌套调用嵌套调用main1int main(void)calcal (sel);vol_ball7void cal (int sel)mainvol_ballvol_ball()caldouble vol_ball()H
◼ 嵌套调用 int main(void) { . cal (sel); . } void cal (int sel) { . vol_ball() . } double vol_ball( ) { . } main cal vol_ball main cal vol_ball 10.1.2 函数的嵌套调用