题目描述:
小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词–DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧
输入:
输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)
输出:
输出DNA的形状,每组输出间有一空行。
#include<stdio.h>
void output(int a,int b){
char str[39*20][39*20]={" "};//定义一个二维数组,初始化为空格
int c;
c=(a+1)/2-1;//先计算出中间的X
str[c][c]='X';
for(int i=1;i<=c;i++){
str[c-i][c-i]='X';//分别把中间的X周围都变成X
str[c-i][c+i]='X';
str[c+i][c-i]='X';
str[c+i][c+i]='X';
}//如果循环次数为1的话,就直接打印
for(int i=0;i<a;i++){
for(int j=0;j<a;j++){
printf("%c",str[i][j]);
}printf("\n");
}//循环次数不为1
for(int l=1;l<b;l++){
for(int i=1;i<a;i++){
for(int j=0;j<a;j++){
printf("%c",str[i][j]);
}printf("\n");
}
}
}
int main(){
int n;
scanf("%d",&n);
if(n<=15){
int a,b;
for(int i=0;i<n;i++){
scanf("%d%d",&a,&b);
if(a>=3&&a<=39&&b<=20&&b>=1){
output(a,b);
printf("\n");
}
}
}return 0;
}
请问大佬们,这输出看起来没毛病,也没有报错,咋就是不对呢?