解题思路:
0   X   X  

1    X X 

2     X

3    X X

4   X   X


可以注意到当重复度>1的时候,只会不断循环第1-a-1行;所以可以设计数变量j表示当前输出第几行图形,当j>a-1时,表示第一个模型输出完毕,即将开始循环1-a-1行,因此,将j重新赋值成1;第四个循环体变量k表示列,k与j的关系是:当k==j||k==a-1-j时,输出X,其余位置输出空格。




注意事项:


题目输出的是大写X不是小写x....

记得每个DNA后要空行....


参考代码:

#include<stdio.h>
int main()
{
	int N,i,j,a,b,k;
	scanf("%d",&N);
	while(N>0)
	{
		scanf("%d%d",&a,&b);
		for(i=0,j=0;i<b;i++)
		{
			if(j>a-1) j=1;
			for(;j<a;j++)
			{
				for(k=0;k<a;k++)
				{
					if(k==j||k==a-1-j) printf("X");
					else printf(" ");
				}
				printf("\n");
			}
		}
		printf("\n");
		N--;
	}
	return 0;
}


点赞(5)
 

0.0分

0 人评分

C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:

一点编程也不会写的:零基础C语言学练课程

解决困扰你多年的C语言疑难杂症特性的C语言进阶课程

从零到写出一个爬虫的Python编程课程

只会语法写不出代码?手把手带你写100个编程真题的编程百练课程

信息学奥赛或C++选手的 必学C++课程

蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程

手把手讲解近五年真题的蓝桥杯辅导课程

评论列表 共有 5 条评论

雪依 5年前 回复TA
4,2呢?如果输入了偶数的情况下改怎么办?没有考虑啊
WeAreOne 5年前 回复TA
能不能 解释详细一点呢
nina 6年前 回复TA
@萌新小白 你可以把每一行当成5个格子(因为DNA最大宽度为5),k表示每一行中第几个格,不知道我这样说你是否理解
萌新小白 6年前 回复TA
或者说k变量表示什么
萌新小白 6年前 回复TA
请问一下k=a-1-j是什么时候啊  没太理解
输出X的左面是J的时候输出 右面是a-j的时候输出吧