用指针编程:输入一个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",min,xb0_h+1,xb0_l+1);