c语言编写:输入n个大于0的正整数,首先进行排序,然后从小到大分2行输出,其中第一行所有的数均小于平均值,n小于10日
时间: 2023-06-12 21:07:15 浏览: 161
以下是C语言代码实现:
```
#include <stdio.h>
#define MAX_N 10
int main() {
int n, i, j, temp, sum = 0;
float avg;
int a[MAX_N];
printf("请输入n个大于0的正整数(n小于等于10):\n");
scanf("%d", &n);
printf("请输入这%d个数:\n", n);
for (i = 0; i < n; i++) {
scanf("%d", &a[i]);
sum += a[i];
}
avg = (float) sum / n;
// 排序
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;
}
}
}
// 输出小于平均值的数
printf("小于平均值的数:\n");
for (i = 0; i < n; i++) {
if (a[i] < avg) {
printf("%d ", a[i]);
}
}
// 输出大于等于平均值的数
printf("\n大于等于平均值的数:\n");
for (i = 0; i < n; i++) {
if (a[i] >= avg) {
printf("%d ", a[i]);
}
}
return 0;
}
```
代码思路:
1. 首先输入n个大于0的正整数,求出它们的和sum。
2. 计算平均值avg = sum / n。
3. 对这n个数进行排序(这里使用冒泡排序)。
4. 输出小于平均值avg的数。
5. 输出大于等于平均值avg的数。
注意事项:
1. 输入的数必须大于0。
2. 输入的n必须小于等于10。
3. 需要将sum定义为int类型,计算平均值时需要将sum强制转换为float类型,以保证精度。
4. 输出小于平均值和大于等于平均值的数时,需要分别使用两个for循环。
阅读全文