C语言矩阵操作

编程存储一个3*3阶矩阵,矩阵中的数值由用户动态输入
1)输出其转置矩阵
2)输出该矩阵与其转置矩阵之和
3)输出该矩阵中的最大值及其行列数

#include 
#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]);
		}
	}
}
//拿去当作业吧,别忘了删除这行

你可能感兴趣的:(c语言)