求C语言大神帮我解释一下这个C语言程序作业啊

希望可以解释一下那些关键函数的意思,比如说printf函数的意义就是把某些文字显示在屏幕上。本人的分值只有最后的5分了,所以…………反正,谢谢你啦!!!

#include <stdio.h>
int a[3][3];
main ()
{
int fun1(int x);
int fun2(int y);
int fun3(int z);
int fun4(int q);
int n,o,p,q,r,s,t,u,v,w;
int i,j;
printf("请依次输入3位学生的\n学号(1,2,3)的成绩;Chinese;math;English\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
scanf ("%d",&a[i][j]);
printf ("\n");
}
printf("输出3位学生的学号(1,2,3);\n①Chinese;②math;③English\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf (" %d ",a[i][j]);
printf ("\n");
}
printf("请输入要查询的学生的学号\n");
scanf ("%d",&n);
printf("请输入需要统计平均分的科目代号\n");
scanf ("%d",&o);
printf("请输入需要计算的科目的最高分的代号\n");
scanf ("%d",&p);
printf("请输入需要计算的科目的最低分的代号\n");
scanf ("%d",&q);
t=fun1 (n);
u=fun2 (o);
v=fun3 (p);
w=fun4 (q);
printf ("学生%d的平均分为%d,\n该科目%d的最高分为%d,\n该科目%d的最低分为%d,\n",n,t,p,v,q,w);
}
int fun1(int x)
{
int i,j;
int sum ,z,t;
int b[3];double ave1;
for (i=0;i<3;i++)
{
sum=0;
for (j=0;j<3;j++)
sum=sum+a[i][j];
ave1=sum/3;
b[i]=ave1;
printf ("\n");
}
t=x-1;
z=b[t];
return(z);
}
int fun2 (int y)
{
int sum,i,j;
int w;
float ave2,u;
float c[3];
for (j=1;j<3;j++)
{
sum=0;
for (i=0;i<3;i++)
{
sum=sum+a[i][j];}
ave2=sum/3;
c[j]=ave2;
}
u=c[y];
return(w);
}
int fun3 (int z)
{
int max,v,i,j;
int d[3];

for (j=0;j<3;j++)
{
max=0;
for (i=0;i<3;i++)
{
if (max<a[i][j])
max=a[i][j];
}
d[j]=max;
}
v=d[z-1];
return(v);
}
int fun4 (int q)
{
int i,j,e[3];
int w;
int min;
for (j=0;j<3;j++)
{
min=a[0][0];
for (i=0;i<3;i++)
{
if (min>a[i][j])
min=a[i][j];
}
e[j]=min;
}
w=e[q-1];
return (w);
}

第1个回答  2013-06-24
#include <stdio.h>
int a[3][3];
main ()
{
int fun1(int x);//声明函数,不过一般都是在主函数外面
int fun2(int y);
int fun3(int z);
int fun4(int q);
int n,o,p,q,r,s,t,u,v,w;
int i,j;
printf("请依次输入3位学生的\n学号(1,2,3)的成绩;Chinese;math;English\n");
for (i=0;i<3;i++)//利用两层循环实现对二维数组数据的录入
{
for (j=0;j<3;j++)
scanf ("%d",&a[i][j]);
printf ("\n");
}
printf("输出3位学生的学号(1,2,3);\n①Chinese;②math;③English\n");
for (i=0;i<3;i++)
{
for (j=0;j<3;j++)
printf (" %d ",a[i][j]);
printf ("\n");
}
printf("请输入要查询的学生的学号\n");
scanf ("%d",&n);
printf("请输入需要统计平均分的科目代号\n");
scanf ("%d",&o);
printf("请输入需要计算的科目的最高分的代号\n");
scanf ("%d",&p);
printf("请输入需要计算的科目的最低分的代号\n");
scanf ("%d",&q);
t=fun1 (n);//调用自定的功能函数
u=fun2 (o);
v=fun3 (p);
w=fun4 (q);
printf ("学生%d的平均分为%d,\n该科目%d的最高分为%d,\n该科目%d的最低分为%d,\n",n,t,p,v,q,w);
}
int fun1(int x)
{
int i,j;
int sum ,z,t;
int b[3];double ave1;
for (i=0;i<3;i++)
{
sum=0;
for (j=0;j<3;j++)//通过循环实现求总分
sum=sum+a[i][j];
ave1=sum/3;//求平均分
b[i]=ave1;
printf ("\n");
}
t=x-1;
z=b[t];
return(z);
}
int fun2 (int y)
{
int sum,i,j;
int w;
float ave2,u;
float c[3];
for (j=1;j<3;j++)
{
sum=0;
for (i=0;i<3;i++)
{
sum=sum+a[i][j];}
ave2=sum/3;
c[j]=ave2;
}
u=c[y];
return(w);
}
int fun3 (int z)
{
int max,v,i,j;
int d[3];

for (j=0;j<3;j++)
{
max=0;
for (i=0;i<3;i++)
{
if (max<a[i][j])//通过循环比较,得到最小值
max=a[i][j];
}
d[j]=max;
}
v=d[z-1];
return(v);
}
int fun4 (int q)
{
int i,j,e[3];
int w;
int min;
for (j=0;j<3;j++)
{
min=a[0][0];
for (i=0;i<3;i++)
{
if (min>a[i][j])//通过循环比较得到最大值
min=a[i][j];
}
e[j]=min;
}
w=e[q-1];
return (w);
}本回答被提问者和网友采纳