简单C程序,二维数组问题,为什么后面输出部分没显示出来啊?
#include<stdio.h>#include<stdlib.h>
#define M 3 //学生数
#define N 4 //课程数
void input(float sc[][N+1],int m);
void output1(float sc[][N+1],int m);
void output2(float sc[][N+1],int m);
void total(float sc[][N+1],int m);
int main()
{
float sc[M+1][N+1],ave[N-1]; //定义学生成绩数组
input(sc,M);
output1(sc,M);
total(sc,M);
output2(sc,M);
system("pause");
return 0;
}
void input(float sc[][N+1],int m)
{
//m用于存放数组sc的行数
int i,j;
printf("请输入%d个学生%d门课程的成绩:\n",m,N);
for(i=0;i<m;i++)
{
printf("\n第%d个学生的\n",i+1);
for(j=0;j<N;j++)
{
printf("\t课程%d的成绩为:",j+1);
scanf("%f",&sc[i][j]);
}
}
}
void output1(float sc[][N+1],int m)
{
int i,j;
printf("output\n");
for(i=0;i<m;i++)
{
for(i=0;j<N;j++)
{
printf("%-7.0f",sc[i][j]);
}
printf("\n");
}
}
void total(float sc[][N+1],int m)
{
int i,j;
//将每名学生平均分初始化为0
for(i=0;i<m;i++)
{
sc[i][N]=0;
for(j=0;j<N;j++)
{
sc[i][N]+=sc[i][j];
}
sc[i][N]/=N;
}
for(j=0;j<N;j++)
{
sc[m][j]=0;
for(i=0;i<m;i++)
{
sc[m][j]+=sc[i][j];
}
sc[m][j]/=m;
}
}
void output2(float sc[][N+1],int m)
{
int i,j;
printf("output\n");
//输出m个学生N门课程的成绩
printf("课程\t");
for(j=0;j<N;j++)
{
printf("%-7d",j+1);
}
printf("\n");
for(i=0;i<m;i++)
{
printf("学生%d\t",i+1);
for(j=0;j<N;j++)
{
printf("%-7.0f",sc[i][j]);
}
//输出学生i的平均成绩
printf("%-7.1f",sc[i][N]);
printf("\n");
}
//输出课程j的平均成绩
for(j=0;j<N;j++)
{
printf("%-7.1f",sc[m][j]);
}
printf("\n");
}