用指针求二维数组中的最值以及相对应的下标

    xiaoxiao2022-07-07  184

    /**************************************************/ /*项目名称:用(普通指针)求二维数组中最大值和最小值及所处位置**/ /*编写者:张旭楠 **/ /*编写环境:vs2010 **/ /**************************************************/ #include<stdio.h> int main() { int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; int max=0,min=0,row1=0,col1=0,row2=0,col2=0; int *p=a[0]; int i,j; max=a[0][0]; min=a[0][0]; for(i=0;i<3;i++) for(j=0;j<4;j++) if(*(p+i*4+j)>max) //i*m+j其中m使二维数组的列数;使用遍历法; { max=*(p+i*4+j); row1=i; col1=j; } if(*(p+i*4+j)<min) { min=*(p+i*4+j); row2=i; col2=j; } printf("max=a[%d][%d]=%d",row1,col1,max); printf("\nmin=a[%d][%d]=%d\n",row2,col2,min); getchar(); getchar(); return 0; }

     

    /*用数组指针求二维数组的最值以及相对应的下标;*/ #include<stdio.h> #include<stdlib.h> int main() { int a[3][4]={000000};//对二维数组的初始化; int i,j,max,min; int row1=0,col1=0,row2=0,col2=0; int (*p)[4]; //定义一个数组指针;使它指向二维数组; p=a; max=p[0][0]; min=p[0][0]; printf("请输入二维数组a:"); for(i=0;i<3;i++) { for(j=0;j<4;j++) { scanf_s("%d",*(p+i)+j); //使用循环输入a[3][4]二维数组; } } for(i=0;i<3;i++) { for(j=0;j<4;j++) { if(*(*(p+i)+j)>max) { max=*(*(p+i)+j); row1=i; col1=j; } if(*(*(p+i)+j)<min) { min=*(*(p+i)+j); row2=i; col2=j; } } } printf("max=a[%d][%d]=%d",row1,col1,max); printf("min=a[%d][%d]=%d",row2,col2,min); system("pause"); return 0; }

     

     

    最新回复(0)