沉墨


私信TA

用户名:1652560938

访问量:729

签 名:

等  级
排  名 50253
经  验 250
参赛次数 0
文章发表 1
年  龄 0
在职情况 学生
学  校 皖西学院
专  业

  自我简介:

TA的其他文章

解题思路: X和空格的输出无非是双重for循环,不难理解。

本题多出一个共用行,要点在这,具体代码中标注


注意事项:

参考代码:

#include<stdio.h>

int main()

{

    int n,a,b;

    int i,j,p,q;

    scanf("%d",&n);


//i,j用来整个DNA的大循环,i是输入次数,j是DNA重复次数

    for(i=0;i<n;i++){

        scanf("%d %d",&a,&b);

        for(j=0;j<b;j++){

//p,q用来DNA的输出,类似数组的行和列

            for(p=0;p<a;p++){

/*重点在这,第一次循环结束,下一次循环开始,首行与上个循环末行共用,

那么只要不是第一次循环,并且是本次循环的首行,就跳过本次循环。

问题得以解决。注意if语句的位置。*/

                if(j>0&&p==0){

                    continue;

                }

                for(q=0;q<a;q++){

                    if(p==q||p==a-q-1)

                        printf("X");

                    else

                        printf(" ");

                }

                printf("\n");

            }

        }

        printf("\n");

    }

    return 0;

}


 

0.0分

0 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区