下面是 C 语言代码,实现了输入 10 个整数并在菜单中提供了 5 种操作选项:#include <stdio.h>
#define N 10
// 计算数组和
int sum(int []);
// 计算数组平均值
float average(int []);
// 对数组从大到小排序
void sort_descend(int []);
// 对数组从小到大排序
void sort_ascend(int []);
// 计算 1!+2!+...+(最小数)! 的和
int factorial_sum(int []);
int main() {
int arr[N];
int i, option;
do {
// 输入 10 个整数保存到数组中
printf("请依次输入%d个整数:\n", N);
for (i = 0; i < N; i++) {
scanf("%d", &arr[i]);
}
// 输出数组
printf("您输入的10个整数为:\n");
for (i = 0; i < N; i++) {
printf(" %d", arr[i]);
}
printf("\n");
// 输出菜单选项
printf("$******************功能菜单***********************$\n");
printf("$ 0. 退出 $\n");
printf("$ 1. 计算数组中10个数之和并输出 $\n");
printf("$ 2. 计算数组中10个数的平均数并输出 $\n");
printf("$ 3. 数组从大到小排序输出,需保留原数组 $\n");
printf("$ 4. 数组从小到大排序输出,需保留原数组 $\n");
printf("$ 5. 计算1!+2!+..+(数组中最小数)!之和并输出 $\n");
printf("$**************************************************$\n");
// 选择操作
printf("请选择您的操作(0-5): ");
scanf("%d", &option);
switch (option) {
case 0:
printf("Bye!\n");
break;
case 1:
printf("数组元素之和为:%d\n", sum(arr));
break;
case 2:
printf("数组元素平均值为:%.2f\n", average(arr));
break;
case 3:
sort_descend(arr);
printf("数组从大到小排序后为:\n");
for (i = 0; i < N; i++) {
printf(" %d", arr[i]);
}
printf("\n");
break;
case 4:
sort_ascend(arr);
printf("数组从小到大排序后为:\n");
for (i = 0; i < N; i++) {
printf(" %d", arr[i]);
}
printf("\n");
break;
case 5:
printf("1! + 2! + ... + %d! = %d\n", arr[0], factorial_sum(arr));
break;
default:
printf("输入有误,请重新输入!\n");
}
} while (option != 0);
return 0;
}
int sum(int a[]) {
int sum = 0, i;
for (i = 0; i < N; i++) {
sum += a[i];
}
return sum;
}
float average(int a[]) {
return sum(a) * 1.0 / N;
}
void sort_descend(int a[]) {
int i, j, temp;
for (i = 0; i < N-1; i++) {
for (j = 0; j < N-i-1; j++) {
if (a[j] < a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
void sort_ascend(int a[]) {
int i, j, temp;
for (i = 0; i < N-1; i++) {
for (j = 0; j < N-i-1; j++) {
if (a[j] > a[j+1]) {
temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
}
int factorial_sum(int a[]) {
int i, fac = 1, sum = 0;
for (i = 1; i <= a[0]; i++) {
fac *= i;
sum += fac;
}
return sum;
}
在实现上述菜单功能时,通过引入函数将不同操作封装进行处理,使代码更清晰易读。 |