题目描述
给你一个整数n,按要求输出n∗n的回型矩阵输入描述:
输入一行,包含一个整数n (1<=n<=19)输出描述:
输出n行,每行包含n个正整数示例1
输入:4
输出:
1 2 3 4
12 13 14 5
11 16 15 6
10 9 8 7#include<iostream> using namespace std; int main() { int n; cin >> n; int arr[20][20] = {0}; int up = 0, down = n - 1, left = 0, right = n - 1; int k = 1; int i = 0; while (k < n * n + 1) { for (i = left; i <= right; i++) { arr[up][i] = k++; } for (i = up + 1; i <= down; i++) { arr[i][right] = k++; } for (i = right - 1; i >= left; i--) { arr[down][i] = k++; } for (i = down - 1; i > up; i--) { arr[i][left] = k++; } up++; down--; left++; right--; } for (i = 0; i < n; i++) { for (int j = 0; j < n; j++) { printf("%3d ", arr[i][j]); } cout << endl; } }
如果k初始化为0,进入循环的条件即为 k<n*n,除此之外,还要注意arr[up][i]=k++将要修改为arr[up][i]=++k,arr[up][i]=k++这个是先赋值再加加,即k先把值赋给arr[up][i],k再加1,arr[up][i]=++k这个即和前面相反
回型矩阵C++代码
最新推荐文章于 2024-03-07 11:13:59 发布