zqz


私信TA

用户名:wxhnzll357159

访问量:11609

签 名:

心之所向,且随风而去

等  级
排  名 1161
经  验 3045
参赛次数 2
文章发表 6
年  龄 20
在职情况 学生
学  校 哔哩大学
专  业 计算机科学与技术

  自我简介:

TA的其他文章

解题思路:

利用字符数组来实现空格和X的的变换,其次找到打印规律。

注意事项:

注意一:题目输出的是X,而不是x,晃眼一看很容易写成小写,这样很不容易发现错误。


注意二:输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。这里说的多组数据并不是有多组N,a,b的意思,而是说多组数据是由N控制,它决定组数,没有多组的N,否则就会输出超限


注意三:单纯的输出一个完整的DNA形状较为简单,多个重复我们就需要找规律(这是题目的关键)我的发现如下图

QQ图片20210209180804.png

通过图示我们可以知道,每一组数据需要一个循环(S1)来走重复打印的次数,在S1内部我们需要一个循环S2来实现每一个S1所打印的行数,在S2中我们需要一个循环S3来实现每一行字符数组的打印,就是3重循环。


代码部分我们做的是最后单独打印最后一行。

参考代码:

#include<stdio.h>
int main()
{
    int N,a,b,j,k,i;
    scanf("%d",&N);
 char ch[40];//将字符数组全部初始化为空格,在需要打印哪一行时将对应的部分改为X,打印完成,又换回空格
 for(i=0;i<40;i++)
 ch[i]=' ';
 while(N--)//当全部组数打印完,跳出循环
 {
    scanf("%d %d",&a,&b);
    for(i=0;i<b;i++)//循环S1
    {
       for(k=0;k<a-1;k++)//循环S2
       {
         ch[k]=ch[a-k-1]='X';
         for(j=0;j<a;j++)循环S3
         printf("%c",ch[j]);
         printf("\n");
         ch[k]=ch[a-k-1]=' ';
       } 
   }
    ch[0]=ch[a-1]='X';//单独打印剩的那一行
    for(j=0;j<a;j++)
    printf("%c",ch[j]);
    printf("\n\n");
    ch[0]=ch[a-1]=' ';
   }
    return 0;
}

有问题的同学欢迎讨论,我们互相成长,一起变强!

 

0.0分

34 人评分

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

编程语言转换

万能编程问答  

代码解释器

代码纠错

SQL生成与解释

  评论区

代码稍微有点问题啊,题目要求一次输入多行数据,但是这个输入一行输出一行,用个数组存储数据会不会好点?反正规定了N上限的,也没啥难度
2021-05-13 21:37:16
#include<stdio.h>
int main()
{
	/*2
	  3 1
	  5 4*/
	int n,a,b;
	int c[39];
	int d[20];
	scanf("%d",&n);
	for(int i=0;i<n;i++)
	{
		scanf("%d%d",&a,&b);
		c[i]=a;
		d[i]=b;
	}
	for(int i=0;i<n;i++)
	{
		for(int j=0;j<d[i];j++)
		{
			for(int m=1;m<=c[i];m++)
			{
				for(int n=1;n<=c[i];n++)
				{
				if(n<=c[i]/2+1)
				{
				if(n==m||n==c[i]-m+1)
				printf("X");
				else
				printf(" ");
				}
				else
				{
					int k;
					k=c[i]-n+1;
					if(k==m||k==c[i]-m+1)
					printf("X");
					else
					printf(" ");
				}
			}
			printf("\n");
		}
		printf("\n");
	}
	printf("\n"); 
	}
	return 0;
}
2021-04-17 00:56:52
就离谱
2021-03-30 18:54:24
好难呜呜
2021-03-16 12:26:21
这题目不离谱吗
2021-03-05 19:55:45