c语言. 输入一个正整数n(1<=n<=10),再输入n个整数,将这n个整数从大到小排序,然后在已经排序后的数组中插入平均数(取整),保持数组的顺序,将插入平均数后的数组输出。
时间: 2024-05-04 16:16:11 浏览: 200
c语言+从键盘输入10个无序的整数,存放在数组中,找出数组中最大值与最小值的所在的位置,并输出数组元素所在的位置与数组元素的值
5星 · 资源好评率100%
好的,我明白您的问题。下面是解决方案:
```c
#include <stdio.h>
#define MAXSIZE 10
int main() {
int n, temp, sum = 0, insert_num;
int arr[MAXSIZE];
float avg;
printf("请输入 %d 以内的正整数 n:", MAXSIZE);
scanf("%d", &n);
printf("请输入 %d 个整数:", n);
for (int i = 0; i < n; i++) {
scanf("%d", &arr[i]);
sum += arr[i];
}
// 从大到小排序
for (int i = 0; i < n - 1; i++) {
for (int j = i + 1; j < n; j++) {
if (arr[i] < arr[j]) {
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
// 计算平均值
avg = (float) sum / n;
insert_num = (int) avg; // 取整
// 插入平均数
for (int i = 0; i < n; i++) {
if (arr[i] < insert_num) {
for (int j = n - 1; j > i; j--) {
arr[j] = arr[j - 1];
}
arr[i] = insert_num;
break;
}
}
// 输出数组
printf("排序后的数组为:\n");
for (int i = 0; i < n; i++) {
printf("%d ", arr[i]);
}
printf("\n");
return 0;
}
```
希望我的回答对您有所帮助。
阅读全文