主函数里为什么输出二维矩阵列就出错了?
有一个问题不明白为什么是这样:以下是程序#include <stdio.h>
#define M 10
#define N 10
void InputMatrix(int *a, int m, int n);
void OutputMatrix(int *a, int m, int n);
int main()
{
int s[M][N], st[N][M], m, n,i,j;
printf("Input m, n:\n");
scanf("%d,%d", &m, &n);
InputMatrix(s[0], m, n);
OutputMatrix(s[0], m, n);
printf("在主函数中输出矩阵\n");
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
printf("%4d", s[i][j]);
}
printf("\n");
}
return 0;
}
/* 函数功能:输入m*n矩阵a的值 */
void InputMatrix(int *a, int m, int n)
{
int i, j;
printf("Input %d*%d matrix:\n", m, n);
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
scanf("%d", &a[i*n+j]);
}
}
}
void OutputMatrix(int *a, int m, int n)
{
int i, j;
printf("output %d*%d matrix:\n", m, n);
for (i=0; i<m; i++)
{
for (j=0; j<n; j++)
{
printf("%4d", a[i*n+j]);
}
printf("\n");
}
}
我调用函数输入输出都没有问题,可是一在主函数中加上输出矩阵那一段程序就出问题,明显输出不对,调用输出函数就没有问题,
说明矩阵s已经赋了值,可是在主函数中输出就出问题了呢?