编写C语言程序处理若干个学生的信息,每个学生的信息包括:学号、姓名、三门成绩及平均分。要求从键盘输入

谁会?谢谢啦!

#include<stdio.h>
#define N 5
struct student
{
long num;
char name[10];
int score[3];
float avr;

};

int main(void)
{
//这里定义了N个学生信息
struct student stu[N];

//下面的数据用来存储过程变量值
int i,s=0,j,h;
//
double aver;
//定义3个最大值和和值,用来分别统计3门课程的最大值和总分
int max[3],sum[3];

//这里用来读入学生信息
printf("Pls enter your Info,as :2007 aaa 97 98 99\n");
for(i=0;i<N;i++)
{
scanf("%ld %s %d %d %d",&stu[i].num,stu[i].name,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);
}

//下面是用来显示输入的用户信息
for(i=0;i<N;i++)
{
printf("%d\t%s\t%d\t%d\t%d\t%f\n",stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2],(1.0*(stu[i].score[0]+stu[i].score[1]+stu[i].score[2]))/3);

}

//获取到每科成绩的最大值,并输出最高者的信息。也输出每科的最高平均成绩

for(j=0; j<3; ++j)
{
max[j] = 0;
sum[j] = 0;
for(i=0;i<N;i++)
{
if(stu[i].score[j]>max[j])
{
max[j]=stu[i].score[j];
h=i;
}

sum[j] += stu[i].score[j];

}
printf("The first class_Info is that:\n");
aver = 1.0*sum[j]/N;
printf("\tThe Aver is %lf\n", aver);
printf("\tThe Highest Score is:%d \n\tThe Score Highest stu info is :%d %s %d\n",max[j], stu[h].num,stu[h].name,stu[h].score[j]);
}

return 0;
}

其中N定义了学生的个数
如果修改写成#define N 你要的数字
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-06-02
#include<stdio.h>
struct student
{
char name[20];
int xue;
char sex;
int age;
double cheng[4];
double ping;
}stu[1000];
int main()
{
int i,j,n;
double sum;
struct student item;
scanf("%d",&n);
getchar();
for(i=0;i<n;i++)
{
sum=0.0;
scanf("%s %d %c %d",stu[i].name,&stu[i].xue,&stu[i].sex,&stu[i].age);
for(j=0;j<4;j++)
scanf("%lf",&stu[i].cheng[j]);
for(j=0;j<4;j++)
sum=sum+stu[i].cheng[j];
stu[i].ping=sum/4;
}
for(j=1;j<n;j++)
for(i=0;i<n;i++)
if(stu[i].ping<stu[i+1].ping)
{
item=stu[i];
stu[i]=stu[i+1];
stu[i+1]=item;
}

for(i=0;i<n;i++)
{
printf("%s %d %c %d ",stu[i].name,stu[i].xue,stu[i].sex,stu[i].age);
for(j=0;j<4;j++)
printf("%lf ",stu[i].cheng[j]);
printf("%lf ",stu[i].ping);
printf("\n");
}
return 0;
}
这个是用C写的,是我自己写的,你可以测试下,我的好像多个性别吧,用M代表男,W代表女,还有什么问的。可追问 ,希望是你的满意答案,谢谢
相似回答