一道C的编程题

来源:百度知道 编辑:UC知道 时间:2024/05/21 07:42:23
定义一个学生成绩结构体类型,其成员为:学号、姓名、每门课的课程名、学分和成绩、平均绩点。编写程序,要求:
1、从键盘输入学生的学号、各选修课程名、各门课的成绩;
2、计算每人的平均绩点;
3、输出时,由键盘输入选择输出情况,如按学号顺序输出各项记录,或按姓名字母顺序输出、或按平均绩点高低输出、或者按某门课程成绩高低输出。
最好要用结构体
还有,要用TC编的

10个学生,每个学生的数据包括学号,姓名,3门课程的成绩,从键盘输入10个学生数据,要求输出3门课程总平均成绩,以及最高分的学生的数据(包括学号,姓名,3门课程成绩地,平均分数)

#include <stdio.h>
#define LEN 10
typedef struct
{
int id;
char name[10];
int course1;
int course2;
int course3;
}STU;

int total(STU* stu)
{
return stu->course1 + stu->course2 + stu->course3;
}
int findHigest(STU* stu,int n)
{
int higest = 0;
int i;
for(i = 1;i < n;i++)
{
if(total(stu+higest) < total(stu+i))
higest = i;
}
return higest;
}

void average(STU* stu,int n, float* result)
{
float sum[3] = {0,0,0};
int i;
for(i = 0;i < n;i++)
{
sum[0] += (stu+i)->course1;
sum[1] += (stu+i)->course2;
sum[2] += (stu+i)->course3;
}
for(i = 0;i < n;i++)
{
*(result+i) = sum[i] / 3.0;
}
}

void scanner(STU* s