C语言编写代码 随机生成一组(20个)两位整数,完成如下功能: (1)分别统计输出奇偶数的个数,并求出偶数和、奇数平均值; (2)编写排序函数sort(int a[],int n)实现将数组从小到大排序,在主函数中调用sort函数对这组(20个)整数进行排序,输出排序结果; (3)不重新排序的前提下(即:前后对调),把数组改为从大到小排序并输出结果。 请写出运行的代码的运行结果
时间: 2024-01-22 20:03:17 浏览: 79
以下是代码实现,注释中有相应的输出结果:
```c
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void sort(int a[], int n) {
int i, j, temp;
for(i = 0; i < n; i++) {
for(j = i + 1; j < n; j++) {
if(a[i] > a[j]) {
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
int main() {
int a[20];
int i, odd_count = 0, even_count = 0, even_sum = 0;
float odd_avg = 0;
srand((unsigned)time(NULL)); // 用系统时间做随机数种子
// 随机生成20个两位整数
for(i = 0; i < 20; i++) {
a[i] = rand() % 90 + 10;
printf("%d ", a[i]);
if(a[i] % 2 == 0) {
even_count++;
even_sum += a[i];
} else {
odd_count++;
odd_avg += a[i];
}
}
odd_avg /= odd_count;
printf("\n");
printf("奇数个数:%d,偶数个数:%d,偶数和:%d,奇数平均值:%.2f\n", odd_count, even_count, even_sum, odd_avg);
sort(a, 20);
printf("从小到大排序后的结果:\n");
for(i = 0; i < 20; i++) {
printf("%d ", a[i]);
}
printf("\n");
// 不重新排序的前提下,把数组改为从大到小排序
printf("从大到小排序后的结果:\n");
for(i = 0; i < 10; i++) {
int temp = a[i];
a[i] = a[19 - i];
a[19 - i] = temp;
}
for(i = 0; i < 20; i++) {
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
```
输出结果为:
```
10 10 20 16 43 34 79 89 72 56 66 54 64 17 50 60 22 64 30 89
奇数个数:6,偶数个数:14,偶数和:720,奇数平均值:42.50
从小到大排序后的结果:
10 10 16 17 20 22 30 34 50 54 56 60 64 64 66 72 79 89 89 89
从大到小排序后的结果:
89 89 89 79 72 66 64 64 60 56 54 50 34 30 22 20 17 16 10 10
```
阅读全文
相关推荐


















