使用指针方式输入及输出二维数组元素:要求定义一个3行4列的二维数组(数组内的值用scanf输入)?

这个程序有点问题,visualC++运行不了,Dev-C++能运行。请各位看看原因。
#include <stdio.h>
#define M 3
#define N 4
int main()
{
int a[M][N];
int (*p)[N];
int i,j;
p=a;
int maxi,maxj,max;
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
scanf("%d",*(p+i)+j);
}
}
maxi=maxj=0;
max=a[0][0];
for(i=0;i<M;i++)
{
for(j=0;j<N;j++)
{
printf("%4d",*(*(p+i)+j));
if(max<*(*(p+i)+j))
{
max=*(*(p+i)+j);
maxi=i;
maxj=j;
}
}
printf("\n");
}
printf("maxis a[%d][%d]:%d\n",maxi,maxj,max);
return 0;
}

是VC++ 6.0吧。

我把你贴的代码放到VC++6.0,编译执行没有问题。

温馨提示:内容为网友见解,仅供参考
第1个回答  2019-11-23
折腾了好一会
p=a;
int maxi,maxj,max;
把这两行调换一下位置,vc6下过了。有可能的话直接用cpp文件来写程序,就不会有这些限制了。本回答被提问者和网友采纳
相似回答