69,371
社区成员
发帖
与我相关
我的任务
分享
#include<stdio.h>
#define N 2//课程
#define M 2//人数
float score[M][N]={0};
float cla[M]={0},people[N]={0};
int main()
{
int i,j;
float h;
void input(void);
void aver1(void);
void aver2(void);
input();
aver1();
aver2();
printf("\nNO. cour1 cour2 cour3 cour4 aver\n");
for(i=0;i<N;i++)
{
printf("NO%2d",i+1001);
for(j=0;j<M;j++)
printf("%8.2f",score[i][j]);
printf("%8.2f\n",people[i]);
}
printf("\naverage:");
for(j=0;j<M;j++)
printf("%8.2f",cla[j]);
printf("\n");
return 0;
}
void input(void)
{
int i,j;
for(i=0;i<N;i++)
{
printf("\nthe score of student %2d:",i+1001);
for(j=0;j<M;j++)
scanf("%f",&score[i][j]);
}
}
void aver1(void)
{
int i,j;
float s[N] = {0.0};
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
s[i]+=score[i][j];
people[i]=s[i]/(float)M;
}
}
void aver2(void)
{
int i,j;
float s[M] = {0.0};
for(j=0;j<M;j++)
{
for(i=0;i<N;i++)
s[j]+=score[i][j];
cla[j]=s[j]/(float)N;
}
}
修改了下楼主的程序,大致有下面几个问题:
1)scanf("%f",&score[N][M]);应改成scanf("%f",&score[i][j]);
2) 变量命名一般都要初始化,如程序中的score,cla,people等;
3)楼主两个平均目的是按每个学生的成绩平均和按每门课程的成绩求平均,所以求和时要用数组区分;