C语言统计若干学生的平均成绩,最低分以及最高分的人数

如题所述

#include<stdio.h>
#define MAX 10 //定义学生人数
struct student //定义学生结构体
{
char name[15];
long num[10];
float score[3];
float ave;
}stu[MAX];
main()
{
int i,j,high=0,low=0;
float max,min;
for(i=0;i<MAX;i++) //输入学生数据
{
printf("请输入第%d个学生的姓名:",i+1);
scanf("%s",stu[i].name);
printf("请输入第%d个学生的学号:",i+1);
scanf("%ld",stu[i].num);
stu[i].ave=0;
for(j=0;j<3;j++)
{
printf("请输入该生第%d门成绩:",j+1);
scanf("%f",&stu[i].score[j]);
stu[i].ave+=stu[i].score[j];
}
stu[i].ave/=3;//求平均成绩
}
max=min=stu[0].ave;
for(i=0;i<MAX;i++)//找平均成绩最大和最小值
{
if(stu[i].ave>=max)
{
max=stu[i].ave;
}
else if(stu[i].ave<=min)
{
min=stu[i].ave;
}
}
for(i=0;i<MAX;i++)//找平均成绩最高和最低的人数
{
if(stu[i].ave==max)
high++;
if(stu[i].ave==min)
low++;
}
//输出数据
printf("\n***********************************************************************\n");
printf("姓名 \t学号 \t成绩1 \t成绩2 \t成绩3\t 平均成绩\n");
for(i=0;i<MAX;i++)
{
printf("%s \t%ld \t%.2f \t%.2f \t%.2f\t %.2f\n",stu[i].name,stu[i].num,stu[i].score[0],stu[i].score[1],stu[i].score[2],stu[i].ave);
}
printf("\n************************************************************************\n");
printf("平均成绩最高的学生人数有%d个,最低的有%d个\n",high,low);
}

我用结构体数组做的,希望会帮到你,呵呵
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-05-04
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i = 0;
int n = 0;
float *a[2] = ;
float sum[2] = ;
float avg[2] = ;
float max[2] = ;
float min[2] = ;

printf("请输入有多少个学生:");
scanf("%d", &n);
a[0] = (float *)malloc(sizeof(float)*n);
a[1] = (float *)malloc(sizeof(float)*n);
for (i = 0; i < n; ++i)
{
printf("请输入第%d个学生的数学成绩:", i+1);
scanf("%f", &a[0][i]);
sum[0] += a[0][i];
if (a[0][i]>max[0])
{
max[0] = a[0][i];
}
printf("请输入第%d个学生的英语成绩:", i+1);
scanf("%f", &a[1][i]);
sum[1] += a[1][i];
if (a[1][i]>max[1])
{
max[1] = a[1][i];
}
}
min[0] = a[0][0];
min[1] = a[1][0];
for (i = 1; i < n; ++i)
{
if (a[0][i]<min[0])
{
min[0] = a[0][i];
}
if (a[1][i]<min[1])
{
min[1] = a[1][i];
}
}
avg[0] = sum[0]/n;
avg[1] = sum[1]/n;
printf("总成绩 平均分 最高分 最低分\n");
for (i = 0; i < 2; ++i)
{
printf("%-8.2f%-8.2f%-8.2f%-8.2f\n", sum[i], avg[i], max[i], min[i]);
}
}
另外,团IDC网上有许多产品团购,便宜有口碑
第2个回答  2011-05-01
#include<stdio.h>
int main()
{
int a[10],i;
float ave;
printf("请输入分数:");
for(i=0;i<10;i++)
scanf("%d",&a[i]);
...这么简单的你也不会做???还是自己动手写,不然你c语言肯定挂。。。
相似回答