打印 DNA 形状
问题描述
小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词--DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧! ^_^
输入
输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。
输出
输出DNA的形状,每组输出间有一空行。
输入样例
2
3 1
5 4
输出样例
X X
X
X X
X X
X X
X
X X
X X
X X
X
X X
X X
X X
X
X X
X X
X X
X
X X
X X
// MY CODE 07-6-14
#include <stdio.h>
#include <string.h>
#define MAX 42
void SetMetrix(char m[][MAX], int a){
int i,j;
for(i = j = 0; i < a; i++,j++)
m[i][j] = 'X';
for(j=a-1,i=0; i < a; i++,j--)
m[i][j] = 'X';
for(i=0, j=a; i < a; i++)
m[i][j] = '\0';
}
void Print(char m[][MAX], int a, int b){
int i,j;
for(j = i = 0; j <= b; ){
printf("%s\n",m[i]);
j = (i==0 ? j+1 : j);
i = (i==a-2 ? 0 : i+1);
}
printf("\n");
}
int main(){
char metrix[MAX][MAX];
int n,a,b;
scanf("%d",&n);
for(;n > 0; n--){
scanf("%d %d",&a,&b);
memset(metrix,32,sizeof(char)*a*MAX);
SetMetrix(metrix,a);
Print(metrix,a,b);
}
return 0;
}
评论