您的位置:首页 > 其它

三个学生,每人修四科,计算所有学生成绩的平均分,并输出某个学生的成绩

2015-08-12 18:07 316 查看
#include<stdio.h>

#define m 3

#define n 4

void f(float b[m]
)

{

 int i,j;

 float sum=0,ave;

 for(i=0;i<m;i++)

 

  for(j=0;j<n;j++)

  sum+=b[i][j];

  ave=sum/(m*n);

  printf("%5.2f",ave);

 

 printf("\n");

}

void g(float c[m]
,int t)

{

 int i;

 for(i=0;i<n;i++)

 printf("%5.2f",c[t][i]);

}

int main()

{

 float a[3][4];

 int i,j,t;

 printf("input the scores:\n");

 for(i=0;i<3;i++)

 for(j=0;j<4;j++)

 scanf("%f",&a[i][j]);

 f(a);

 while(scanf("%d",&t)!=EOF)

 g(a,t);

 return 0;

}

 

 

#include<stdio.h>

void f(float *p,int n)

{

 float *s;

 float sum=0,ave;

 s=p+n-1;

 for(;p<=s;p++)//for语句中第一部分为空,是因为主函数中在调用f函数时,已经把*a传递给形参p

  sum+=*p;

  ave=sum/n;

 

 printf("%5.2f\n",ave);

}

void g(float (*p)[4],int n)

{

 int i;

 for(i=0;i<4;i++)

 printf("%5.2f",p
[i]);

}

int main()

{

 float a[3][4];

 int i,j;

 printf("input the scores:\n");

 for(i=0;i<3;i++)

 for(j=0;j<4;j++)

 scanf("%f",&a[i][j]);

 f(*a,12);  //*a等价于a[0]也等价于&a[0][0],在调用函数f时,将*a传给形参p,使p指a[0][0],然后通过p++,使p不断地指向后面的元素

 g(a,2);//a等价于&a[0],在调用函数g时,将a传给形参p,使p指向二维数组a的首行a[0],然后通过p
[i],i++依次输出对应行各元素的值

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: