用c语言编写程序随机生成一组(20个)两位整数,完成如下功能: (1)分别统计输出奇偶数的个数,并求出偶数和、奇数平均值; (2)编写排序函数sort(int a[],int n)实现将数组从小到大排序,在主函数中调用sort函数对这组(20个)整数进行排序,输出排序结果; (3)不重新排序的前提下(即:前后对调),把数组改为从大到小排序并输出结果。
时间: 2024-01-16 22:03:11 浏览: 108
好的,我会依次回答您的问题。对于您的第一个问题,以下是一个C语言程序,可以随机生成20个两位整数,并完成相应的功能:
```c
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void sort(int a[], int n);
int main(){
int i, a[20], even_count = 0, odd_count = 0, even_sum = 0, odd_sum = 0;
float odd_avg;
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_sum += a[i];
}
}
printf("\n");
odd_avg = (float)odd_sum / odd_count;
printf("even count: %d, odd count: %d, even sum: %d, odd average: %.2f\n", even_count, odd_count, even_sum, odd_avg);
sort(a, 20);
printf("sorted array: ");
for(i=0; i<20; i++){
printf("%d ", a[i]);
}
printf("\n");
printf("reverse sorted array: ");
for(i=19; i>=0; i--){
printf("%d ", a[i]);
}
printf("\n");
return 0;
}
void sort(int a[], int n){
int i, j, temp;
for(i=0; i<n-1; i++){
for(j=i+1; j<n; j++){
if(a[i]>a[j]){
temp = a[i];
a[i] = a[j];
a[j] = temp;
}
}
}
}
```
程序的核心是sort函数,使用冒泡排序对数组进行排序。在主函数中,我们使用rand函数随机生成20个两位整数,并对数组进行遍历,统计奇偶数的个数并计算偶数和、奇数平均值。然后调用sort函数对数组进行排序,并输出排序结果。最后再将数组从大到小排序输出。
希望这个程序能够满足您的需求,如有疑问,请随时向我提问。
阅读全文