解题思路: 一拼一凑做出来,留作下次复习;
思路:比如5数DNA我就前四列一循环打印,最后补上最后一列的打印就完事。s数组用于存打印内容1(两个X和无数个空格‘ ’),b数组用于存特殊情况(一个X和无数空格),然后begin和end都指着X的位置,以便移动,然后每次就一列一列的打印,最后补上最后一列.有些地方代码冗余了,没有优化,有时间再说。
注意事项:
参考代码:
#includeusing namespace std; void swap(char* x,char *y) {char t;t=*x;*x=*y;*y=t;}; int main() { char s[40]; char* begin; char* end; char b[40]; int n,a1,b1; cin >> n; for (int ee = 0; ee < n; ee++) { cin >> a1 >> b1; memset(s, ' ', sizeof(s)); memset(b, ' ', sizeof(b)); for (int i = 0; i < b1; i++) { memset(s, ' ', sizeof(s)); s[0] = 'X'; s[a1 - 1] = 'X'; s[a1] = '\0'; begin = s; end = s + a1 - 1; for (int k = 0; k < a1 - 1; k++) { if (k == (a1 - 1) / 2) { b[k] = 'X'; b[a1] = '\0'; puts(b); } else { puts(s); if ((begin + 1) != (end - 1)) { swap(begin, begin + 1); begin++; swap(end, end - 1); end--; } else { char* t = begin; begin = end; end = t; } } } } memset(s, ' ', sizeof(s)); s[0] = 'X'; s[a1 - 1] = 'X'; s[a1] = '\0'; puts(s); cout << endl; } }
0.0分
4 人评分
C语言程序设计教程(第三版)课后习题9.3 (C语言代码)浏览:708 |
C语言训练-自由落体问题 (C语言代码)浏览:793 |
蛇行矩阵 (C语言代码)浏览:561 |
统计字符 (C语言描述运用ctype.h)浏览:1130 |
小九九 (C语言代码)浏览:557 |
IP判断 (C语言代码)浏览:919 |
C语言程序设计教程(第三版)课后习题12.2 (C语言代码)浏览:805 |
C语言程序设计教程(第三版)课后习题11.3 (C语言代码)浏览:734 |
C语言训练-求1+2!+3!+...+N!的和 (C语言代码)浏览:533 |
C语言程序设计教程(第三版)课后习题8.3 (C语言代码)浏览:411 |