1. 程式人生 > 其它 >指標與二維陣列(最大值,最小值,全部元素之和,第二列元素之和,第二行元素之和,轉置,第一個元素開始的對角線之和)

指標與二維陣列(最大值,最小值,全部元素之和,第二列元素之和,第二行元素之和,轉置,第一個元素開始的對角線之和)

#include<stdio.h>
//求最大值的函式
int highest(int m[3][4])//形式引數是二維陣列
{
int i,j;
int a=m[0][0];//認為第一個數是最大值
for(i=0;i<3;i++)//外層迴圈控制行
{
for(j=0;j<4;j++)//內層迴圈控制列
{
if(a<m[i][j])
a=m[i][j];
}
}
return a;
}
//求最小值的函式
int lowest(int m[3][4])//形式引數是二維陣列
{
int i,j;
int b=m[0][0];//認為第一個數是最小值
for(i=0;i<3;i++)//外層迴圈控制行
{
for(j=0;j<4;j++)//內層迴圈控制列
{
if(b>m[i][j])
b=m[i][j];
}
}
return b;
}

//二維陣列全部元素之和
int sum(int m[3][4])
{
int i,j,s=0;
for(i=0;i<3;i++)//外層迴圈控制行
{
for(j=0;j<4;j++)//內層迴圈控制列
{
s+=m[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;
}
int main()
{
int array[3][4]={{11,25,3,48},{25,16,77,28},{39,10,19,32}};//二維陣列
int(*point)[4];//指向二維陣列的指標
point=array;//指標指向二維陣列

int i,j;
//輸出二維陣列
printf("二維陣列:\n");
for(i=0;i<3;i++)//外層迴圈控制行
{
for(j=0;j<4;j++)//內層迴圈控制列
{
printf("%3d",array[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");

int duijiaox=0;
//求第一個元素開始的對角線之和
for(i=0;i<3;i++)
{
duijiaox+=array[i][i];
}
printf("對角線之和為:%d\n",duijiaox);
printf("\n");

//二維陣列中的最大值和最小值
int max,min;
max=highest(point);//highest求最大值的函式
min=lowest(point);//求最小值的函式

printf("最大值:%d,最小值:%d\n",max,min);
printf("\n");

//全部元素之和
int summray=0;
summray=sum(point);
printf("二維陣列全部元素之和是:%d\n",summray);
printf("\n");

//求第二列元素之和
int col_2=0;
col_2=col2(point);
printf("第二列元素之和是:%d\n",col_2);
printf("\n");

//求第二行元素之和
int row_2=0;
row_2=row2(point);
printf("第二行元素之和是:%d\n",row_2);
printf("\n");

//第一個元素和最後一個元素交換
int temp;
printf("第一個元素和最後一個元素交換:\n");
if(array[0][0]<array[2][3])
{
temp=array[0][0];
array[0][0]=array[2][3];
array[2][3]=temp;
}
for(i=0;i<3;i++)//外層迴圈控制行
{
for(j=0;j<4;j++)//內層迴圈控制列
{
printf("%3d",array[i][j]);
}
printf("\n");
}
printf("\n\n");

}

輸出結果: