#include
# define n 10
# define b 5
int score[n][b] = {{0,0}};
float aver[n],cour[b];
void input()
{
int i,j;
printf("请依次输入每位学生的成绩:\n");
for(i=0;ifor(j=0;j scanf("%d",&(score[i][j])); //1.用取地址符取错了
}
void average(int score[n][b])
{
int i,j;
for(i=0;i{
float s=0.0;
for(j=0;j s=s+score[i][j];
aver[i]=s/b;
}
}
void course(int score[n][b])
{
int i,j;
for(j=0;j {
float s=0.0;
for(i=0;is=s+score[i][j];
cour[j]=s/n;
}
}
void main()
{
int i,j;
input();
printf("学生成绩为:\n");
for(i=0;i{
for(j=0;j printf("%d ",score[i][j]);
printf("\n");
}
printf("每个学生的平均成绩为:\n");
average(score);
for(i=0;iprintf("%f ",aver[i]); //2.用%f打印,因为aver[i]的每个元素是float型的
printf("\n");
printf("每门课的平均分为:\n");
course(score);
for(j=0;j printf("%f ",cour[j]); //2.用%f打印,因为cour[j]的每个元素是float型的
printf("\n");
}
/*
* 另外:功能可以实现了,但是程序的写的很不好,知识点掌握不捞
* void average(int score[n][b])中的n的值幸好是宏,并
* 不是真正的传值,有以下知识点代巩固:1,二维数组作参数 2,宏是如何
* 替换的 3,变量初始化为0;
*
*/
运行截图:
#include
# define n 10
# define b 5
int score[n][b];
float aver[n],cour[b];
void input()
{
int i,j;
printf("请依次输入每位学生的成绩:\n");
for(i=0;i
}
void average(int score[n][b])
{
int i,j;
for(i=0;i
float s=0.0;
for(j=0;j s=s+score[i][j];
aver[i]=s/b;
}
}
void course(int score[n][b])
{
int i,j;
for(j=0;j {
float s=0.0;
for(i=0;i
cour[j]=s/n;
}
}
void main()
{
int i,j;
input();
printf("学生成绩为:\n");
for(i=0;i
for(j=0;j printf("%d ",score[i][j]);
printf("\n");
}
printf("每个学生的平均成绩为:\n");
average(score);
for(i=0;i
printf("\n");
printf("每门课的平均分为:\n");
course(score);
for(j=0;j printf("%5.2f ",cour[j]);
printf("\n");
}
改了这2句:
printf("%5.2f ",aver[i]);
printf("%5.2f ",cour[j]);