【发布时间】:2016-12-20 03:27:04
【问题描述】:
我必须声明一个“struct”类型的向量,对于每 n 个学生,它会为学生所属的组(类似于计数器)、他们的姓名和成绩创建一个值。
程序必须输出在这些组中找到的成绩最高的学生的姓名。我必须在堆上分配向量(我只知道堆的理论解释,但我不知道如何应用它)并且我必须使用指针遍历向量。
例如,如果我给 n 值 4,将有 4 名学生,程序将输出最高成绩以及他们的姓名,如 here 所示。
这将输出 Ana 10 和 Eva 10。
我试了一下,但我不知道如何扩展或修复它,所以如果可能的话,我很感激在此类问题中堆和指针的实际应用方面我能获得的所有帮助。
p>#include <stdio.h>
#include <stdlib.h>
struct students {
int group;
char name[20];
int grade;
};
int main()
{
int v[100], n, i;
scanf("%d", n);
for (i = 0; i < n; i++) {
v[i].group = i;
scanf("%s", v[i].name);
scanf("%d", v[i].grade);
}
for (i = 0; i < n; i++) {
printf("%d", v[i].group);
printf("%s", v[i].name);
printf("%d", v[i].grade);
}
return 0;
}
这里我只是想创建矢量,但没有任何效果..
【问题讨论】:
-
scanf("%d", n);-->scanf("%d", &n);和scanf("%d", v[i].grade);-->scanf("%d", &v[i].grade);