二维数组相关代码

#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");
}

 

posted @ 2022-03-31 10:03  YuuKiSi  阅读(197)  评论(0)    收藏  举报