凯尼阿文
2017-12-02 04:08
采纳率: 100%
浏览 10.4k
已采纳

C语言二维数组输出矩阵

问题描述 :
 
从键盘上输入一个整数N,按以下规律输出一个(2N+1)*(2N+1)的矩阵:
对角线的值为1,
上半三角区域值为2,
下半三角区域值为3,
左半三角区域的值为4,
右半三角区域的值为5。

输入说明 :
 你的程序需要从标准输入设备(通常为键盘)中读入多组测试数据。每组测试数据数据占一行,大于零,小于等于8。
输出说明 :
 对每组测试数据,你的程序需要向标准输出文件(通常为启动该程序的终端)依次输出符合要求的矩阵,每行数据与数据之间以空格分隔,在行首和行尾不要输出多余的空格。在所有数据前后,以及两组数据之间不要输出多余的空行。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

4条回答 默认 最新

  • threenewbee 2017-12-02 04:33
    已采纳
     #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");
    }
    }
    
    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • threenewbee 2017-12-02 04:34
     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   
    

    在线测试通过

    如果问题解决,麻烦点下我回答右边的采纳,谢谢

    评论
    解决 无用
    打赏 举报
  • threenewbee 2017-12-02 04:35
    评论
    解决 无用
    打赏 举报
  • 码农u号 2017-12-02 08:50

    看看这图就可以找出规律了。
    图片说明

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题