C语言Suuctshment inc num char nare[10]: int grade: (2)在程序中另外定义一个结构体指针数組,在排序前,其中每一个数組元素依次指向 学生成绩登记表(为結构体类型数組)中的各学生情况
时间: 2024-03-05 08:51:53 浏览: 114
好的,你的问题是关于C语言的结构体和指针的使用。根据你的要求,我可以给你一个代码示例:
```
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[10];
int grade;
};
int main() {
struct student roster[5] = {{"Alice", 80}, {"Bob", 90}, {"Charlie", 85}, {"David", 95}, {"Emma", 75}};
struct student *ptr[5];
int i, j;
struct student *temp;
// initialize pointers
for (i = 0; i < 5; i++) {
ptr[i] = &roster[i];
}
// sort by grade using bubble sort
for (i = 0; i < 5; i++) {
for (j = 0; j < 4-i; j++) {
if (ptr[j]->grade < ptr[j+1]->grade) {
temp = ptr[j];
ptr[j] = ptr[j+1];
ptr[j+1] = temp;
}
}
}
// print sorted roster
for (i = 0; i < 5; i++) {
printf("%s: %d\n", ptr[i]->name, ptr[i]->grade);
}
return 0;
}
```
这个程序定义了一个结构体`student`,其中包含学生的姓名和成绩。首先,定义了一个结构体类型的数组`roster`,存储了5个学生的信息。然后,定义了一个指针数组`ptr`,其中每一个元素指向`roster`数组中的一个学生结构体。接着,使用冒泡排序算法对指针数组`ptr`进行排序,排序的关键字是学生的成绩。最后,按照排序后的顺序输出学生的姓名和成绩。
希望这个代码示例能够回答你的问题!
阅读全文