结构体:n个学生的信息(包括学号,姓名,成绩),要求按照成绩的高低顺序输出学生的信息。
樊南:
1.因为题目有说学生数n是1~200,我这里设置210是为了避免发生数组越界的情况。当然,设置200也行,当运行输入n=200时,填满整个数组,我是习惯设置得比最大值大一些。
2.在本文代码中不能直接将stu[210]写成stu[n]。因为在c语言中数组的大小必须是一个常量表达式,而不能是变量,在定义数组时变量n还没有被赋值,所以不能不能直接将stu[210]写成stu[n]。
如果你想使用stu[n],那么就将结构体数组的定义放在main函数内,并在读取学生人数n后再动态分配数组空间。像下面的代码:
···
struct Student {
long number;
char name[20];
int score;
};
int main() {
int n, i, j;
//printf("请输入学生人数:\n");
scanf("%d", &n);
struct Student stu[n], temp;
for (int i = 0; i < n; i++) {
// printf("请输入学号:\n");
scanf("%ld", &stu[i].number);
// printf("请输入姓名:\n") ;
scanf("%s", stu[i].name);
// printf("请输入成绩:\n");
scanf("%d", &stu[i].score);
}
······
}
3.这个“随便一个”我不知道是怎么个随便,如果是大于200的数,那么你可以随便选一个整数,如266、10001、2345···都可以,在1 |