一个简单的指针问题。
下面这个程序是:输入一个二维数组即矩阵,然后将该矩阵输出,并通过sum函数将矩阵中的所有元素求和。#include "stdio.h"
#define N 2
int sum(int *p)
{
int i,j,s=0;
for(i=0;i<N;i++)
for(j=0;j<N;j++)
s+=*((p+i)+j);
return s;
}
void main()
{
int i,j,a[N][N];
printf("input the array:\n");
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
printf("输出矩阵:\n");
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf("%4d",a[i][j]);printf("\n");
}
printf("矩阵中元素之和为:%d\n",sum(a[0]));
}
程序没有语法错误,但是运行的时候,结果好像有点不太对,结果如图1
1.zip
(2.62 KB)
所示。大家帮忙看看,并指出问题所在,不胜感激。