C语言:用指针编程:输入一个4×5的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标。

用指针编程:输入一个4×5的二维整型数组,输出其中最大值、最小值以及它们所在行和列的下标。
感觉下面编的有问题,下标感觉有问题,要怎么改

#include <stdio.h>main(){ int i,j,a[4][5],*p=*a,min,max,xb0_h,xb0_l,xb1_h,xb1_l; for(i=0;i<4;i++) for(j=0;j<5;j++) { scanf("%d",p); if(i==0&&j==0) { max=*p; min=*p; xb0_h=0; xb0_l=0; xb1_h=0; xb1_l=0; } if(max<*p) { max=*p; xb1_h=i; xb1_l=j; } if(min>*p) { min=*p; xb0_h=i; xb0_l=j; } p++; } printf("最大值为:%d,行标:%d,列标:%d\n",max,xb1_h,xb1_l); printf("最小值为:%d,行标:%d,列标:%d\n",min,xb0_h,xb0_l);}

你的程序没问题啊。行号列号都是从0开始的。如果要改的话,只要把组后两句改一下:

printf("最大值为:%d,行标:%d,列标:%d\n",max,xb1_h+1,xb1_l+1);  

printf("最小值姿扮裂为:%d,行标:%d,列标:%d\n",min,xb0_h+1,xb0_l+1); 

结迹闭果就缺胡成了这样:


代码没错误,你要效果是什么
就那上面的例子 0 你想输出 1行1列吗
那只要 后面四个变量加1 就可以没州如迹蠢了
printf("最大值为:%d,行标:%d,列标:%d\枯启n",max,xb1_h+1,xb1_l+1);
printf("最小值为:%d,行标:%d,列标:%d\n",min,xb0_h+1,xb0_l+1);
printf("最大值为:%d,行标:%d,列标:%d\n",max,xb1_h+1,xb1_l+1);
printf("最小值为:%d,行哗磨标:%d,列哪芦信标:%d\李轮n",min,xb0_h+1,xb0_l+1);
这个我还没有学习