PTA矩阵转置
输入一个正整数n (1<n≤6),根据下式生成1个n*n的方阵,然后将该方阵转置(行列互换)后输出。
a[i][j] = i * n + j + 1(0≤i≤n-1,0≤j≤n-1)
输入格式:
输入一个正整数n (1<n≤6),注意无输入提示
输出格式:
以%4d的形式输出,注意最后一个数字之后有换行
输入样例:
3
输出样例:
在这里给出相应的输出。例如:1 4 72 5 83 6 9
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{int n = 0;int i = 0;int j = 0;int x = 0;int y = 0;int arr[5][5] = {0};int brr[5][5] = {0};cin >> n;for (i = 0; i < n; i++){for (j = 0; j < n; j++)arr[i][j] = (i * n + j + 1);}for (x = 0; x < n; x++){for (y = 0; y < n; y++){brr[x][y] = arr[y][x];printf("%4d", brr[x][y]);}cout << endl;}return 0;
}
解释
第一个for
给数组arr内排好一个n*n的矩阵
第二个for
brr数组的横纵坐标与arr正好相反
可能的错误:
格式!!
arr没排完时,调用arr未赋值的量,brr得不到数值