-
花了我一个晚上的C程序
2008-05-12
分类:
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://leowf.blogbus.com/logs/20792265.html
题目:输入10个学生5门课的成绩,分别用函数实现下列功能:
1、计算每个学生的平均分;
2、计算每门课的平均分;
3、找出所有50个分数中最高的分数所对应的学生和课程;
4、计算学生平均分方差。#include<stdio.h>
int Student=0,Subject=0;
void main()
{
void p_star();
float aver_std(float a[10][5],int i);
float aver_sub(float a[10][5],int n);
float max(float a[10][5]);
float variance(float a[10][5]);
float grade[10][5];
int i,j,n;
p_star();
for(i=0;i<10;i++)
for(j=0;j<5;j++)
{
printf("Input the grade of subject %d for the student %c:",j+1,i+65);
scanf("%f",&grade[i][j]);
}
p_star();
printf("The average of each student(from A to J):\n");
for(i=0;i<10;i++)
printf("%5.2f\t",aver_std(grade,i));
p_star();
printf("The average of each subject(from S1 to S5):\n");
for(n=0;n<5;n++)
printf("%5.2f\t",aver_sub(grade,n));
p_star();
printf("The student %c's subject %d is the highest score:%f\n",Student+65,Subject+1,max(grade));
p_star();
printf("The variance:%5.2f\n",variance(grade));
p_star();
}float aver_std(float a[10][5],int i)
{
int j;
float sum=0;
for(j=0;j<5;j++)
sum+=a[i][j];
return (sum/5);
}float aver_sub(float a[10][5],int n)
{
int j;
float sum=0;
for(j=0;j<10;j++)
sum+=a[j][n];
return (sum/10);
}float max(float a[10][5])
{
int i,j;
float max=0;
for(i=0;i<10;i++)
for(j=0;j<5;j++)
if(a[i][j]>max)
{max=a[i][j];
Student=i;
Subject=j;
}
return max;
}float variance(float a[10][5])
{
int i;
float sum2=0,sum1=0,x;
for(i=0;i<10;i++)
{
sum2+=aver_std(a,i)*aver_std(a,i);
sum1+=aver_std(a,i);
}
x=sum2/10-(sum1/10)*(sum1/10);
return x;
}
void p_star()
{printf("\n*******************************************************************\n");}欧耶~!








评论