利用动态内存分配,要求能处理任意人数的成绩,总人数由用户输入,然后输入对应数量的成绩,最后根据根据输入的号码(最小号码是1)输出对应学生的成绩,当输入号码不合法时,输出Error。 注: 第一个数为总人数 随后是相应数量的成绩 最后一个是输入的查询号码 效果如下: 输入: 10 78 86.5 65 99 91 77.5 56 72 84 88 4 输出:99
时间: 2024-02-27 08:54:24 浏览: 18
python练习题 :用户任意输入10个整数到列表中,然后由大到小排列并输出。
以下是用 C 语言实现的代码,满足上述要求:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, x;
scanf("%d", &n);
double *grades = (double *) malloc(n * sizeof(double)); // 动态分配内存
for (int i = 0; i < n; i++) {
scanf("%lf", &grades[i]);
}
scanf("%d", &x);
if (x < 1 || x > n) {
printf("Error");
} else {
printf("%.0lf", grades[x - 1]);
}
free(grades); // 释放内存
return 0;
}
```
该程序首先读入总人数 n,然后动态分配内存存储成绩信息。接着读入需要查询的学生编号 x,如果该编号不合法则输出 "Error",否则输出对应学生的成绩,并释放动态分配的内存。
阅读全文