用c语言写一个程序三个要求写出后封装成函数放在一个程序要有返回:一、输入矩形的长宽高L、W、H。求体积及三个面LW、WH、LH的面积。二、一个班有10个同学参与考试请用菜单选择的方式求出平均分、最高分、最低分。三、编写两个函数第一个函数求两个数的最大公约数第二个函数求两个数的最小公倍数。
#include <stdio.h>
// 第一题函数 void calculateRect(float L, float W, float H, float* volume, float* area1, float* area2, float* area3) { *volume = L * W * H; *area1 = L * W; *area2 = W * H; *area3 = L * H; }
// 第二题函数 void calculateScore(float scores[], int size, float* average, float* max, float* min) { *average = 0; *max = scores[0]; *min = scores[0]; for(int i = 0; i < size; i++) { *average += scores[i]; if(scores[i] > *max) { *max = scores[i]; } if(scores[i] < *min) { *min = scores[i]; } } *average /= size; }
// 第三题函数 int gcd(int a, int b) { if(b == 0) { return a; } return gcd(b, a % b); }
int lcm(int a, int b) { return a * b / gcd(a, b); }
int main() { int choice; float L, W, H, volume, area1, area2, area3, scores[10], average, max, min; int num1, num2; while(1) { printf("1. 计算矩形体积及三个面积\n"); printf("2. 计算考试平均分、最高分、最低分\n"); printf("3. 求两个数的最大公约数和最小公倍数\n"); printf("4. 退出程序\n"); printf("请选择操作(输入数字1-4):"); scanf("%d", &choice); switch(choice) { case 1: printf("请输入矩形的长、宽、高(用空格分隔):"); scanf("%f %f %f", &L, &W, &H); calculateRect(L, W, H, &volume, &area1, &area2, &area3); printf("矩形的体积为%.2f,三个面积分别为%.2f、%.2f、%.2f\n", volume, area1, area2, area3); break; case 2: printf("请输入10个同学的成绩(用空格分隔):"); for(int i = 0; i < 10; i++) { scanf("%f", &scores[i]); } calculateScore(scores, 10, &average, &max, &min); printf("平均分为%.2f,最高分为%.2f,最低分为%.2f\n", average, max, min); break; case 3: printf("请输入两个数(用空格分隔):"); scanf("%d %d", &num1, &num2); printf("%d和%d的最大公约数为%d,最小公倍数为%d\n", num1, num2, gcd(num1, num2), lcm(num1, num2)); break; case 4: printf("程序已退出\n"); return 0; default: printf("输入无效,请重新选择\n"); break; } } return 0;
原文地址: https://www.cveoy.top/t/topic/flNZ 著作权归作者所有。请勿转载和采集!