第1个回答 推荐于2016-05-17
#include <stdio.h>
#include <stdlib.h>
void main()
{
int i,j;
int NC=6, NR=3;
int **a;
int a_max,a_min,i_max,i_min,j_max,j_min;
a = (int **) malloc(sizeof(int *) * NR);
for (j=0;j<NR;j++){
a[j] = (int *) malloc(sizeof(int) * NC);
}
// 请用 scanf 输入数据,我这里简单赋值了
for (j=0;j<NR;j++) for (i=0;i<NC;i++) {
a[j][i] = (j+1)*100 + i;
}
for (j=0;j<NR;j++){
for (i=0;i<NC;i++) printf("%3d ",**(a+j)+i);
printf("\n");
}
a_max= **a;
a_min= **a;
i_max=i_min=j_max=j_min=0;
for (j=0;j<NR;j++)
for (i=0;i<NC;i++)
{
if (**(a+j)+i > a_max) { i_max = i; j_max=j,a_max = **(a+j)+i; };
if (**(a+j)+i< a_min) { i_min = i; j_min=j,a_min = **(a+j)+i; };
}
printf("Max: j=%d i=%d a=%d\n",j_max,i_max, **(a+j_max)+i_max );
printf("Min: j=%d i=%d a=%d\n",j_min,i_min, **(a+j_min)+i_min );
}
语句里 可以用 a[j][i] 代替 **(a+j)+i 的!本回答被提问者采纳