实例要求:
- 1、声明一个
student结构体类型
,结构体中的成员有学号,姓名,成绩3个成员
;
- 2、使用此结构体类型定义结构体数组,数组的
长度为10
;
- 3、使用终端输入的方式对结构体数组的每个元素进行初始化;
- 4、封装函数按照成绩对结构体数组中的每个元素进行
冒泡排序
;
实例分析:
- 1、构建结构体,定义相应的变量,如学号,姓名,成绩;
- 2、常规操作,冒泡排序;
- 3、主函数调用即可;
示例代码:
#include <stdio.h>
#include <string.h>
#define MAX_LEN 50
typedef struct {
int student_id;
char name[MAX_LEN];
float score;
} Student;
void bubble_sort(Student arr[], int n) {
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (arr[j].score > arr[j+1].score) {
Student temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
int main() {
Student students[10];
for (int i = 0; i < 10; i++) {
printf("请输入第%d个学生的学号:", i+1);
scanf("%d", &students[i].student_id);
printf("请输入第%d个学生的姓名:", i+1);
scanf("%s", students[i].name);
printf("请输入第%d个学生的成绩:", i+1);
scanf("%f", &students[i].score);
}
bubble_sort(students, 10);
printf("\n按成绩排序后的学生信息:\n");
for (int i = 0; i < 10; i++) {
printf("学号:%d, 姓名:%s, 成绩:%.2f\n", students[i].student_id, students[i].name, students[i].score);
}
return 0;
}