L1-039. 古风排版——二维字符数组的条件输出
2017-04-01 15:51
309 查看
think:
1字符串数组的条件输出注意空格(首+中+尾)
L1-039. 古风排版
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)
输入样例:
4
This is a test case
输出样例:
以下为wrong answer代码——忽视了空格的输出(不理解二维字符数组的初始化)
以下为accepted代码——顺序思维
以下为accepted代码——逆序思维
1字符串数组的条件输出注意空格(首+中+尾)
L1-039. 古风排版
中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。
输入格式:
输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。
输出格式:
按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)
输入样例:
4
This is a test case
输出样例:
asa T st ih e tsi ce s
以下为wrong answer代码——忽视了空格的输出(不理解二维字符数组的初始化)
#include <bits/stdc++.h> using namespace std; int main() { int i, j, t, n, len, tp; scanf("%d", &n); char st1[1004], st[1004][1004]; tp = 0; getchar(); gets(st1); len = strlen(st1); if(len%n == 0) t = len/n; else t = len/n + 1; for(j = t-1; j >= 0; j--) { for(i = 0; i < n; i++) { st[i][j] = st1[tp++]; if(tp == len) break; } if(i != n) break; } for(i = 0; i < n; i++) { for(j = 0; j < t; j++) { printf("%c", st[i][j]); } printf("\n"); } return 0; }
以下为accepted代码——顺序思维
#include <bits/stdc++.h> using namespace std; int main() { int n, i, j, op, tp, vid[1004][1004]; char st[1004], ans[1004][1004]; scanf("%d", &n); getchar(); gets(st); int len = strlen(st); op = tp = 0; memset(vid, 0, sizeof(vid)); while(op != len) { for(j = 0; j < n; j++) { ans[tp][j] = st[op++]; vid[tp][j] = 1; if(op == len) break; } tp++; } for(j = 0; j < n; j++) { for(i = tp-1; i >= 0; i--) { if(vid[i][j] == 1) printf("%c", ans[i][j]); else printf(" "); } printf("\n"); } return 0; }
以下为accepted代码——逆序思维
#include <bits/stdc++.h> using namespace std; int main() { int i, j, t, n, len, tp; scanf("%d", &n); char st1[1004], st[1004][1004]; tp = 0; getchar(); gets(st1); len = strlen(st1); if(len%n == 0) t = len/n; else t = len/n + 1; for(j = t-1; j >= 0; j--) { for(i = 0; i < n; i++) { if(tp < len) st[i][j] = st1[tp++]; else st[i][j] = ' '; } } for(i = 0; i < n; i++) { for(j = 0; j < t; j++) { printf("%c", st[i][j]); } printf("\n"); } return 0; }
相关文章推荐
- PAT L1-039. 古风排版 数组填字符
- C++ L1-039. 古风排版(如何声明二维动态数组)
- L1-039 古风排版 同样的输出连样例都过不了??
- CCCC-GPLT L1-039. 古风排版 团体程序设计天梯赛
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039. 古风排版 java
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039. 古风排版
- L1-039 古风排版
- 团队天梯赛L1-039. 古风排版
- L1-039(古风排版)
- L1-039. 古风排版
- PAT-L1-039. 古风排版
- L1-039. 古风排版
- 团体程序设计天梯赛-练习集 L1-039. 古风排版