c语言编写程序,从键盘输入 n(n<30)个学生的身高(实型,保留两位小数)并存入数组中,按身高从高到低排 序,并输出排序后的身高。 输入格式: 输入n的值,然后输入n个身高,用空格隔开。 输出格式: 降序输出排序后的身高,每个身高后一个空格(保留两位小数)。
时间: 2024-02-21 07:56:37 浏览: 25
以下是一个使用动态内存分配的 C 语言程序,实现了从键盘输入 n 个学生的身高并按照身高从高到低排序并输出的功能:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i, j;
double temp;
double *heights;
// 读入 n 和 n 个身高
printf("请输入学生人数 n:");
scanf("%d", &n);
heights = (double *) malloc(n * sizeof(double));
printf("请输入 %d 个学生的身高(保留两位小数):\n", n);
for (i = 0; i < n; i++) {
scanf("%lf", &heights[i]);
}
// 冒泡排序
for (i = 0; i < n - 1; i++) {
for (j = 0; j < n - i - 1; j++) {
if (heights[j] < heights[j + 1]) {
temp = heights[j];
heights[j] = heights[j + 1];
heights[j + 1] = temp;
}
}
}
// 输出排序后的身高
printf("身高从高到低排序后的结果为:\n");
for (i = 0; i < n; i++) {
printf("%.2f ", heights[i]);
}
printf("\n");
free(heights);
return 0;
}
```
这个程序首先读入 n 和 n 个身高,并使用动态内存分配技术为身高数组分配足够的内存。然后使用冒泡排序算法对身高进行从高到低排序,最后输出排序后的身高。注意,这里使用了动态内存分配,可以处理更多的身高数据,但需要在程序结束时手动释放内存。
阅读全文