用C语言编写任意输入20个互不相等的整数,编写代码实现以下功能:1.求20个数的平均数并输出;2.将20个数中的奇数全部输出,没有奇数提示“无奇数”;3.将20个数由大到小排序并输出。
时间: 2024-10-17 19:07:07 浏览: 27
在C语言中,可以使用以下代码来实现这个功能:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义函数用于计算平均值
double average(int arr[], int n) {
double sum = 0;
for (int i = 0; i < n; i++) {
sum += arr[i];
}
return sum / n;
}
// 定义函数判断是否有奇数,并输出
void print_odd(int arr[], int n) {
for (int i = 0; i < n; i++) {
if (arr[i] % 2 != 0) {
printf("%d ", arr[i]);
}
}
if (n == 0) {
printf("无奇数");
}
}
// 定义冒泡排序函数,按降序排列数组
void bubble_sort_descending(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - 1 - i; j++) {
if (arr[j] < arr[j + 1]) {
// 交换元素
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int main() {
int num[20];
int count = 0;
// 输入20个互不相等的整数
printf("请输入20个互不相等的整数:\n");
for (int i = 0; i < 20; i++) {
scanf("%d", &num[i]);
if (num[i] != -1 && count < 20) { // 防止输入过多数字
count++;
}
}
// 求平均数并输出
double avg = average(num, count);
printf("这20个数的平均数是 %.2f\n", avg);
// 输出奇数
print_odd(num, count);
// 排序并输出
bubble_sort_descending(num, count);
printf("\n这20个数按降序排列:\n");
for (int i = 0; i < count; i++) {
printf("%d ", num[i]);
}
return 0;
}
```
阅读全文