1. 程式人生 > 其它 >二維陣列相關程式碼

二維陣列相關程式碼

#include <stdio.h>

//二維陣列求最大值
int highest(int m[3][4])  //m[3][4]形式引數,接收實參point的值
{
 int a=m[0][0];
 int i,j;
 for(i=0;i<3;i++)     //求最大值的過程
 {
  for(j=0;j<4;j++)
  {
   if(a<m[i][j])
    a=m[i][j];   
  }
 }
 return a;  //a就是最大值,返回給主函式
}

//二維陣列求最小值
int lowest(int m[3][4])  //m[3][4]形式引數,接收實參point的值
{ int a=m[0][0]; int i,j; for(i=0;i<3;i++) //求最小值的過程 { for(j=0;j<4;j++) { if(a>m[i][j]) a=m[i][j]; } } return a; //a就是最大值,返回給主函式 } //二維陣列全部元素之和 int sum(int add[3][4]) { int i,j,s=0; for(i=0;i<3;i++) //求最小值的過程 { for(j=0;j<4;j++) { s+=add[i][j]; } } return
s; } //第二列元素之和 int col2(int m[3][4]) { int i,s=0; for(i=0;i<3;i++) { s+=m[i][1]; } return s; } //第二行元素之和 int row2(int m[3][4]) { int i,s=0; for(i=0;i<4;i++) { s+=m[1][i]; } return s; } void main() { int array[3][4]={{11,25,3,48},{25,16,77,28},{39,10,19,32}};//定義一個二維陣列 int (*point)[4];//
定義二維陣列指標 int i,j; int max,min; int row_2=0,col_2=0,duijiaox=0,summray=0; point=array; //讓point指標指向二維陣列第一個元素 //輸出二維陣列 printf("二維陣列:\n"); for(i=0;i<3;i++) //外層迴圈控制行 { for(j=0;j<4;j++) //內層迴圈控制列 { printf("%3d",array[i][j]); //用指標輸入陣列元素 *(*(point+i)+j) } printf("\n"); //換行 } printf("\n"); //二維矩陣的轉置 printf("轉置後的二維陣列:\n"); for(i=0;i<4;i++) { for(j=0;j<3;j++) { printf("%3d",array[j][i]); } printf("\n"); } printf("\n"); //求第一個元素開始的對角線元素之和 for(i=0;i<3;i++) { duijiaox+=array[i][i]; } printf("對角線元素之和是:%d\n",duijiaox); printf("\n"); max=highest(point); //二維陣列求最大值 ,point指向二維陣列 min=lowest(point); //最小值 printf("二維陣列最大值是:%d, 最小值:%d\n",max,min); //全部元素之和 printf("\n"); summray=sum(point); //求所有元素的和 printf("二維陣列所有元素之和是:%d\n",summray); //第二列元素之和 printf("\n"); col_2=col2(point); printf("第二列元素之和:%d\n",col_2); //第二行元素之和 printf("\n"); row_2=row2(point); printf("第二行元素之和:%d\n",row_2); printf("\n"); }