C语言编程:N*N方阵的转置

【问题描述】 输入一个正整数n (1<n≤6),在主函数输入n*n的方阵的值,编写函数将该方阵转置(行列互换,不能用辅助数组),然后在主函数输出转置后的矩阵。
【输入形式】矩阵维数,然后输入n*n方阵的值
【输出形式】输出转置后的矩阵
【样例输入】
5
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
【样例输出】
1 6 11 16 21
2 7 12 17 22
3 8 13 18 23
4 9 14 19 24
5 10 15 20 25
【样例说明】第一个数是方阵的维数,后面的整数是方阵的值,数据间隔为两列

#include<stdio.h>

int main()

{

int n,t,a[100][100],i,j; scanf("%d",&n);

for(i=0;i<n;i++)

for(j=0;j<n;j++) scanf("%d",&a[i][j]);

printf("转换后:\n");

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{

for(i=0;i<n;i++)

{

for(j=0;j<n;j++)

{

if(j==0) 

printf("%d",a[j][i]); else printf(" %d",a[j][i]);

}

printf("\n");

}}}

 扩展资料:

C语言书写规则:

1、一个说明或一个语句占一行。

2、用{} 括起来的部分,通常表示了程序的某一层次结构。{}一般与该结构语句的第一个字母对齐,并单独占一行。

3、低一层次的语句或说明可比高一层次的语句或说明缩进若干格后书写。以便看起来更加清晰,增加程序的可读性。在编程时应力求遵循这些规则,以养成良好的编程风格。

参考资料:

百度百科-c语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-21

#include<stdio.h>
#include<string.h>
int main()
{int i,j,t,n,a[6][6];
 scanf("%d",&n);
 for(i=0;i<n;i++)
   for(j=0;j<n;j++)
     scanf("%d",&a[i][j]);
 for(i=0;i<n-1;i++)
   for(j=i+1;j<n;j++)
   {t=a[i][j];a[i][j]=a[j][i];a[j][i]=t;}
 for(i=0;i<n;i++)
   {for(j=0;j<n;j++)
      printf("%3d",a[i][j]);
    printf("\n");
   }
return 0;
}

追问

感谢解答,但是为什么输出结果前面会有空格呢?

追答

前面不要空格,寻就把最后的%4d,改为%-4d

那就

本回答被提问者和网友采纳