输入n个学生的C语言课程成绩(浮点型),找出中位数后输出。用冒泡排序,不用函数帮我写一个程序
时间: 2024-10-27 12:14:47 浏览: 14
当然可以,下面是一个简单的C语言程序,它使用冒泡排序算法来找到输入学生成绩的中位数,同时不使用函数:
```c
#include <stdio.h>
#include <stdlib.h>
#define N 10 // 假设最多只有10个学生成绩
void bubble_sort(float 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]) {
float temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
int find_median(float arr[], int n) {
bubble_sort(arr, n);
// 如果数组长度是奇数,返回中间元素
if (n % 2 == 1)
return arr[n / 2];
else { // 如果长度是偶数,取中间两个数的平均值
return (arr[(n - 1) / 2] + arr[n / 2]) / 2.0;
}
}
int main() {
float scores[N];
int n;
printf("请输入学生人数:");
scanf("%d", &n);
printf("请输入 %d 个学生的成绩:\n", n);
for (int i = 0; i < n; ++i) {
scanf("%f", &scores[i]);
}
float median = find_median(scores, n);
printf("中位数是: %.2f\n", median);
return 0;
}
```
在这个程序中,`bubble_sort` 函数用于对成绩数组进行排序,然后`find_median` 函数在排序后的数组中找到并返回中位数。注意,这个程序假设输入的学生数量不超过`N`个,并使用了`main`函数作为程序入口。
阅读全文