编程存储一个3*3阶矩阵,矩阵中的数值由用户动态输入
1)输出其转置矩阵
2)输出该矩阵与其转置矩阵之和
3)输出该矩阵中的最大值及其行列数
#include <stdio.h>
#define H 3
#define L 3
int main(int argc, char *argv[])
{
int juzhen1[H][L],juzhen2[H][L];
int i,j,max=-1,Hmax[H*L],Lmax[H*L],maxN=0;
printf("请输入一个3*3的矩阵:\n");
for(i=0,j=0;i<H;j++)//输入矩阵
{
scanf("%d",&juzhen1[i][j]);
if(j==L-1){i++;j=-1;}
}
printf("\n");
for(i=0,j=0;i<H;j++)//转置矩阵 juzhen2
{
juzhen2[j][i]=juzhen1[i][j];
if(j==L-1){i++;j=-1;}
}
for(i=0,j=0;i<H;j++)//输出转置矩阵
{
printf("%-8d",juzhen2[i][j]);
if(j==L-1){i++;j=-1;printf("\n");}
}
printf("\n");
for(i=0,j=0;i<H;j++)//输出转置矩阵与原矩阵的和
{
printf("%-8d",juzhen2[i][j]+juzhen1[i][j]);
if(j==L-1){i++;j=-1;printf("\n");}
}
for(i=0,j=0;i<H;j++)//找出最大数
{
if(max<juzhen1[i][j])
{
max=juzhen1[i][j];
Hmax[0]=i+1;
Lmax[0]=j+1;
}
if(j==L-1){i++;j=-1;}
}
for(i=0,j=0;i<H;j++)//最大数查重
{
if(max==juzhen1[i][j])
{
maxN++;
Hmax[maxN-1]=i+1;
Lmax[maxN-1]=j+1;
}
if(j==L-1){i++;j=-1;}
}
if(maxN==1)
{
printf("矩阵中最大的数为%d,该数位于第%d行第%d列",max,Hmax[0],Lmax[0]);
}else{
printf("共有最大数%d个,分别位于",maxN);
for(i=0;i<maxN;i++){
printf("%d行%d列 ",Hmax[i],Lmax[i]);
}
}
}
//拿去当作业吧,别忘了删除这行
2135





