设计一个函数,能够对输入的两个学生结构体信息中的成绩按照大小顺序输出。要求使用指针类型的变量进行结构体变量的定义。
解题思路:采用 malloc 函数进行结构体指针变量的定义,并使用 --> 访问成员变量的方式进行结构体变量赋值;比较两个结构体信息中学生的成绩成员变量的大小,按照大小顺序输出。
程序框架:
#include "stdio.h"
#include "malloc.h"
#include "string.h"
#define NUM 1
#define STUDENT_NUM 3
struct STUDENT
{
char STU_ID[8];
char STU_NAME[10];
int STU_AGE;
int STU_SCORE;
};
int main(int argc, char* argv[])
{
// 建立一个学生的结构体 : 年龄,学号,名字和分数
int i,j;
struct STUDENT stu[STUDENT_NUM];
stu[0].STU_AGE=12;
strcpy(stu[0].STU_ID,"04120084");
strcpy(stu[0].STU_NAME," 张三 ");
stu[1].STU_AGE=12;
strcpy(stu[1].STU_ID,"04120085");
strcpy(stu[1].STU_NAME," 李四 ");
stu[2].STU_AGE=13;
strcpy(stu[2].STU_ID,"04120086");
strcpy(stu[2].STU_NAME," 赵五 ");
// 选择排序法
// 输入学生的成绩信息
printf("按顺序输入%d个学生的成绩信息,中间用“,”隔开\n",STUDENT_NUM);
scanf("%d,%d,%d",&stu[0].STU_SCORE,&stu[1].STU_SCORE,&stu[2].STU_SCORE);
// 学生添加选择排序法程序
{
}//end of 学生添加选择排序法程序
printf("%s,%d\n",stu[0].STU_NAME,stu[0].STU_SCORE);
printf("%s,%d\n",stu[1].STU_NAME,stu[1].STU_SCORE);
printf("%s,%d\n",stu[2].STU_NAME,stu[2].STU_SCORE);
}
return 1;
}