小恶魔


私信TA

用户名:2016211900100

访问量:2742

签 名:

希望自己悄悄变厉害!

等  级
排  名 11047
经  验 998
参赛次数 0
文章发表 7
年  龄 0
在职情况 学生
学  校 武汉科技大学
专  业

  自我简介:

解题思路:

先打印第一组图案,在对角线上面才打印:行数和列数相同时和行数和列数相加等于a - 1

再打印后面的图案就每个少打印第一行的图案就可以了


注意事项:

输出的“X”是大写的


参考代码:

#include <stdio.h>
int main() {
    int N, a, b, i, j, k,l;
    scanf("%d", &N);
    for (l = 1; l <= N; l++) {

        scanf("%d%d", &a, &b);
        //先打印第一个
        for (i = 0; i < a; i++) {
            for (j = 0; j < a; j++) {
                if (i == j || i + j == a - 1)   //判断是否在对角线上
                    printf("X");
                else
                    printf(" ");
            }
            printf("\n");
        }

        //后面的每个会少第一行的符号
        for (k = 0; k < b - 1; k++) {
            for (i = 1; i < a; i++) {
                for (j = 0; j < a; j++) {
                    if (i == j || i + j == a - 1)
                        printf("X");
                    else
                        printf(" ");
                }
                printf("\n");
            }
        }
        printf("\n");
    }
    return 0;
}


 

0.0分

0 人评分

看不懂代码?想转换其他语言的代码? 或者想问其他问题? 试试问问AI编程助手,随时响应你的问题:

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区