C语言问题。通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。

通过键盘输入3名学生4门课程的成绩,分别求每个学生的平均成绩和每门课程的平均成绩。要求所有成绩均放入一个4行5列的数组中,输入时同一人数据间用空格,不同人用回城,其中最后一列和最后一行分别放每个学生的平均成绩、每门课程的平均成绩及班级总平均分。

用C语言做。

void printScore(int score[4][3]){

int i,j;

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

printf("学生%d的三门成绩分别为:\t",i+1);

for(j=0;j<3;j++){

printf("%d\t",score<i>[j]);

if(j==2)

printf("\n");

}

}

printf("\n");

}

扩展资料:

printf()用法:

1、printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。

格式输出,它是c语言中产生格式化输出的函数(在stdio.h中定义)。用于向终端(显示器、控制台等)输出字符。格式控制由要输出的文字和数据格式说明组成。

要输出的文字除了可以使用字母、数字、空格和一些数字符号以外,还可以使用一些转义字符表示特殊的含义。

简单点理解就是,在一段程序中你正确使用该函数,可以在该程序运行的时候输出你所需要的内容。

2、printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf函数之前必须包含stdio.h文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-12-16
#include<stdio.h>
int main()
{
int i,j,a[4][5];
printf("请输入成绩:\n");
for(i=0;i<3;i++)
for(j=0;j<4;j++)
scanf("%3d",&a[i][j]);
for(i=0;i<3;i++)
a[i][4]=(a[i][0]+a[i][1]+a[i][2]+a[i][3])/4;
for(j=0;j<5;j++)
a[3][j]=(a[0][j]+a[1][j]+a[2][j])/3;
printf("数组为:\n");
for(i=0;i<4;i++)
{
for(j=0;j<5;j++)
printf("%-4d ",a[i][j]);
printf("\n");
}
return 0;
}
不懂可以追问本回答被网友采纳
第2个回答  2019-07-20
#include<stdio.h>
void xsaver(float (*p1)[4],int n) //每个学生的平均分
{
float stud[n];int i,j;
stud[0]=0;stud[1]=0;stud[2]=0;
for(i=0;i<n;i++)
{
for(j=0;j<4;j++)
stud[i]+=*(*(p1+i)+j);
printf("stud[%d]=%5.2f\t",i,stud[i]/4);
}
printf("\n");
}
void kcaver(float (*p)[4],int n)//每门课程的平均分
{
int i,j;float course[n];
course[0]=0;course[1]=0;course[2]=0;course[3]=0;
for(j=0;j<n;j++)
{
for(i=0;i<3;i++)
course[j]+=*(*(p+i)+j);
printf("course[%d]=%5.2f\t",j,course[j]/3);
}
}
void max(float *p,int n)//p=*score=score[0],score[0]是个列指针,p也是列指针
{
float max=*p;int maxi,maxj,k=0;
for(int j=0;j<=n-1;j++)
if(*(p+j)>max){max=*(p+j);k=j;}
maxi=k/4;maxj=k%4;
printf("\nk=%d maxi=%d maxj=%d max=%5.2f\n",k,maxi,maxj,max);
}
int main()
{
float score[3][4]={{65,67,70,60},{80,87,90,81},{90,99,100,98}};
xsaver(score,3);//每个学生的平均分
kcaver(score,4);//每门课程的平均分
max(*score,12);//求最高分
return 0;
}
第3个回答  2012-07-03
main()
{
int data[5][4];

int i,j;

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

{//输入成绩

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

scanf("%f ", &data[i][j]);
scanf("%f\n", &data[i][4]);
}
for(i=0;i<4;i++)//求平均分

data[3][i]=(data[0][i]+data[1][i]+data[2][i])/3;
for(j=0;j<4;j++)//求总分

data[j][4]=data[j][0]+data[j][1]+data[j][2]+data[j][3];

}
写完收工,给分吧本回答被提问者和网友采纳
第4个回答  2012-07-03
自己想啊
相似回答