//创建n个结构体,并用n个指针分别指向这n个数组,再将n个
//指针存入一个数组,进行冒泡排序,交换数组中指针位置
#include<stdio.h>
#include<stdlib.h>
#define count 10
typedef struct stu_information {
char* id[10];
char* name[10];
int score;
}stu;
void input(stu* meau[]) {
int i;
printf("请输入十个学生的信息:\n");
for (i = 0; i < count; i++) {
stu* infor = (stu*)malloc(sizeof(stu));
scanf("%s %s %d", infor->id, infor->name, &infor->score);
meau[i] = infor;
}
}
void sort(stu* meau[]) {
int j, i;
for (i = 0; i < count - 1; i++) {
for (j = i; j < count; j++) {
if (meau[j]->score > meau[j + 1]->score) {
stu* temp = meau[j];
meau[j] = meau[j + 1];
meau[j + 1] = temp;
}
}
}
}
void output(stu* meau[]) {
int i;
printf("这十个学生的排名为:\n");
printf("学号 姓名 分数\n");
for (i = 0; i < count; i++) {
printf("%-7s%-7s%d\n", meau[i]->id, meau[i]->name, meau[i]->score);
}
}
int main(void) {
stu* meau[count];
input(meau);
sort(meau);
output(meau);
}
DEVC++上没有问题,但是visual studio上报错\sort1.c(18): error C4700: 使用了未初始化的局部变量“infor”