c语言程序设计,2题80分

来源:百度知道 编辑:UC知道 时间:2024/09/24 01:16:57
1.已知学生的记录由学号、年龄和学习成绩构成,N名学生的数据已存入a结构体数组中。要求:从键盘输入一年龄,如果记录中有这一年龄的记录请全部显示并求这些记录的平均成绩。
2.有10个学生,每个学生的数据包括学号、姓名、三门课的成绩。要求:
(1)键盘输入10个学生数据;
(2)计算三门课的平均成绩;
(3)输出三门课中最高分学生的数据;
(4)找出平均成绩在85分以上或者全部课程成绩在80分以上的学生。

2题请务必都编出来,最好自己编译过没错误的再发上来,谢谢,不会做的请不要说话,要水可以去水其他人的问题,别水我的.
请高手编下,急用,再次感谢
2楼的第一题貌似有一个小错误...希望改下.第二题我自己改了~

第1题已经针对VC++6.0做了适应性修改,问题出在:
st=realloc(st,sizeof(student)*(*n+1));

这一句,VC++6.0不自动转换类型,必须进行强制转换:
st=(student *)realloc(st,sizeof(student)*(*n+1));

与程序算法无关,是编译器特性的问题,我是在BCB2007中测试的,原程序没有问题。

*********************************************************

1.
//---------------------------------------------------------------------------

#include <stdio.h>
#include <stdlib.h>

typedef struct {
int id;
int age;
float sou;
} student;
void find(student a[],const int n,int age)
{
int i,count=0;
float sum=0;
for (i = 0; i<n; i++) {
if (age==a[i].age) {
printf("ID:%d\nAge:%d\nScore:%g\n\n",a[i].id,a[i].age,a[i].sou);
sum+=a[i].sou;
++count;
}
}
printf("COUNT:%d\nAverage:%g\n",count,sum/count);
}
student *create(int *n)
{