问题描述 :
从键盘上输入一个整数N,按以下规律输出一个(2N+1)*(2N+1)的矩阵:
对角线的值为1,
上半三角区域值为2,
下半三角区域值为3,
左半三角区域的值为4,
右半三角区域的值为5。
输入说明 :
你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据数据占一行,大于零,小于等于8。
输出说明 :
对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的终端)依次输出符合要求的矩阵,每行数据与数据之间以空格分隔,在行首和行尾不要输出多余的空格。在所有数据前后,以及两组数据之间不要输出多余的空行。
#include <stdio.h>
int main()
{
int n = 0;
//scanf("%d", &n);
n = 5;
for (int i = 0; i <= 2*n; i++)
{
for (int j = 0; j <= 2*n; j++)
{
if (i == j || i + j == 2*n) {printf("1\t"); continue;}
if (j > i && j < 2* n - i && i < n) { printf("2\t"); continue; }
if (j < i && j > 2* n - i && i > n) { printf("3\t"); continue; }
if (j < i && j < 2* n - i) { printf("4\t"); continue; }
if (j > i && j > 2* n - i) { printf("5\t"); continue; }
printf("-\t");
}
printf("\n");
}
}
Output:
1
2
3
4
5
6
7
8
9
10
11
1 2 2 2 2 2 2 2 2 2 1
4 1 2 2 2 2 2 2 2 1 5
4 4 1 2 2 2 2 2 1 5 5
4 4 4 1 2 2 2 1 5 5 5
4 4 4 4 1 2 1 5 5 5 5
4 4 4 4 4 1 5 5 5 5 5
4 4 4 4 1 3 1 5 5 5 5
4 4 4 1 3 3 3 1 5 5 5
4 4 1 3 3 3 3 3 1 5 5
4 1 3 3 3 3 3 3 3 1 5
1 3 3 3 3 3 3 3 3 3 1
在线测试通过
如果问题解决,麻烦点下我回答右边的采纳,谢谢