指针的应用之学生成绩

#include<stdio.h>
#include<string.h>
int f1(float(*p)[5])
{
int i,j;
float k,s=0;
for(i=0; i<3; i++)
{
for(j=0; j<5; j++)
s=s+*(*(p+i)+j);
k=s/5;
printf("%.2f ",k);
s=0;
k=0;
}
return 0;
}
int f2(float(*p)[5])
{
int i,j;
float k,s=0;
for(j=0; j<5; j++)
{
for(i=0; i<3; i++)
s=s+*(*(p+i)+j);
k=s/3.0;
printf("%.2f ",k);
s=0;
k=0;
}
return 0;
}
int f3(float(*p)[5])
{
float m;
int row=0,colum=0,i,j;
m=p[0][0];
for(i=0; i<3; i++)
for(j=0; j<5; j++)
if(*(*(p+i)+j)>m)
{
m=p[i][j];
row=i;
colum=j;
}

printf("%.2f %d %d",m,row+1,colum+1);
return 0;
}
int f4(float(*p)[5])
{
int i,j,t=0,z=0;
float k,s=0;
for(i=0; i<3; i++)
{

for(j=0; j<5; j++)
s=s+*(*(p+i)+j);
k=(s/5);
s=0;
t=t+k*k;

z=z+k;k=0;
}
printf("%.2f",(t/3.0)-(z/3.0)*(z/3.0));
return 0;
}
int main()
{
float a[3][5]= {{70,70,70,70,70},{70,70,70,70,70},{70,70,70,70,70}};
//float a[3][5];memset(a,70,sizeof(a));
//a[2][4]=100.0;
printf("每个学生的平均成绩:");
f1(a);
printf(" ");printf("每门课的平均成绩:");
f2(a);
printf(" ");printf("最高");
f3(a);
printf(" ");printf("方差");
f4(a);
printf(" ");
return 0;
}

原文地址:https://www.cnblogs.com/SSYYGAM/p/4213982.html