打印 DNA 形状 问题描述 小强从小就喜欢生命科学,他总是好奇花草鸟兽从哪里来的。终于, 小强上中学了,接触到了神圣的名词--DNA.它有一个双螺旋的结构。这让一根筋的小强抓破头皮,“要是能画出来就好了” 小强喊道。现在就请你帮助他吧! ^_^ 输入 输入包含多组测试数据。第一个整数N(N<=15),N表示组数,每组数据包含两个整数a,b。a表示一个单位的DNA串的行数,a为奇数且 3<=a<=39。b表示重复度(1<=b<=20)。 输出 输出DNA的形状,每组输出间有一空行。 输入样例 23 15 4 输出样例 X X XX X X X X X X X XX X X X X X XX X X X X X XX X X X X X XX 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;}

评论