假设学生基本信息包括学号、姓名、三门课程成绩以及个人平均成绩。输入n个学生信息,输出平均分最高的学生信息。
#include <stdio.h>
struct student{
int num;
char name[10];
int computer,english,math;
double average;
};
int main(int argc, char **argv) {
printf("input student number:");
int n;
scanf("%d",&n);
int i =0;
struct student max = {
0}; //placeholder for max
struct student temp;//placeholder to read in data
for(i;i<n;i++){
printf("input student's id,name and score for computer,english,math respectively\n");
scanf("%d",&temp.num);
scanf("%s",&temp.name);
scanf("%d",&temp.computer);
scanf("%d",&temp.english);
scanf("%d",&temp.math);
temp.average = (temp.computer+temp.english+temp.math)/3.0;
if(temp.average>max.average) max = temp;
}
printf("id: %d, name: %s, average:%.2lf\n",max.num,max.name,max.average);
return 0;
}
进一步,我们要求用一个数组记录输入的n个学生的数据,并排序(使用选择排序),那么我们需要开辟数组并改变整个循环体的实现,
#include <stdio.h>
struct student{
int num;
char name[10