#include
float a_stu[4],a_cour[3];//定义两个全局数组,用来表示学生平均成绩和各科平均成绩
int a[4][3]={78,78,99,90,89,96,77,91,90,92,79,89};
int main()
{
void aver_stu(void);
void aver_cour(void);
void fangcha(void);
aver_stu();
aver_cour();
int i,j,m,p,q;
m=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<3;j++)
if(a[i][j]>m)
{m=a[i][j];
p=i,q=j;
}
printf("分数最高是%d分,该学生是第%d个学生 ,其课程是第%d门\n",m,p+1,q+1);
fangcha();
return 0;
}
//
void aver_stu(void)
{ int i,j;
float sum1;
for(i=0;i<4;i++)
{for(j=0,sum1=0;j<3;j++)//每算完一位学生的平均成绩后,要重新使sum=0才能计算下一位,所以在第二个for语句sum值要归0
sum1+=a[i][j];
a_stu[i]=sum1/3;
}
printf("四位学生的平均成绩为:\n");
for(i=0;i<4;i++)
printf("%f\n",a_stu[i]);
}
//
void aver_cour(void)
{int i,j;
float sum2;
for(i=0;i<3;i++)
{
for(j=0,sum2=0;j<4;j++)
{sum2+=a[j][i];
a_cour[i]=sum2/4;}
}
printf("三门课的平均成绩为:\n");
for(i=0;i<3;i++)
printf("%f\n",a_cour[i]);
}
//
void fangcha(void)
{float sum3=0,sum4=0,h;
int i;
for(i=0;i<4;i++)
{sum3+=a_stu[i]*a_stu[i];
sum4+=a_stu[i];}
h=sum3/4-(sum4/4)*(sum4/4);
printf("平均分方差为:%f\n",h);
}
typedef struct {
int num;
char name[20];
float cj1,cj2,cj3;
float avgcj;
float sumcj;
}StudentC;
void main(){
StudentC s[3];
int i;
for(i=0;i<3;i++){
scanf("%d",&a[i].num);
sanf("%s",a[i].name);
scanf("%f,%f,%f",&s[i].cj1,&s[i].cj2,&s[i].cj3);
}
for(i=0;i<3;i++){
s[i].sumcj=s[i].cj1+s[i].cj2+s[i].cj3;
s[i].avgcj=s[i].sumcj/3;
}
for(i=0;i<3;i++){
printf("学号为%d,姓名为%s,平均成绩为%.2f,总成绩为%.2f",s[i].num,s[i],name,s[i].avg,s[i].sumcj);
}
}