C语言程序输入一个4行4列的整型矩阵,显示这个矩阵的最大值、主对角线之和、辅对角线乘积及转置矩阵?

如题所述

话不多说上代码,转置不知道你想转什么样子的,就随便转了一些
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

void Advert(int (*PArr)[4])
{
int Temp=0;
for(int i=0;i<4;i++)
{
for(int j=i;j<4;j++)
{
Temp=PArr[i][j];
PArr[i][j]=PArr[j][i];
PArr[j][i]=Temp;
}
}

}

int main(void)
{

int Arr[4][4]={0};

// 初始化数组

srand((unsigned int)time(NULL));

for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
Arr[i][j]=rand()%256;
}
}

//打印数组
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}

puts("");

int MajorDiagonalSum=0;
int SubdiagonalMul=1;
int MaxVal=Arr[0][0];

//打印数组
for(int i=0;i<4;i++)
{

for(int j=0;j<4;j++)
{

if(Arr[i][j]>MaxVal)
{
MaxVal=Arr[i][j];
}

if(i==j)
{
MajorDiagonalSum+=Arr[i][j];
printf("%-8d",Arr[i][j]);

}
else if(4-i-1==j){

printf("%-8d",Arr[i][j]);
SubdiagonalMul*=Arr[i][j];
}
else{
printf("%-8s"," ");
}

}
puts("");
}
puts("");

printf("最大值:%d\n主对角线只和:%d\n副对角线乘积:%d\n",MaxVal,MajorDiagonalSum,SubdiagonalMul);

puts("");
Advert(Arr);
//打印数组
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j++)
{
printf("%-8d",Arr[i][j]);
}
puts("");
}
puts("");
return 0;
}
温馨提示:答案为网友推荐,仅供参考