也是水题哈,思路特别简单,但是我却做了快两个小时。不在状态,可能是下午疲惫原因吧。
这道题目要注意输入的矩阵是逆着的。就是说比如要输入矩阵h we o输入的序列应该为hwoe即一行输入是顺序输入另外一行是逆序的。我的思路是创建一个二维数组把逆序输入还原成顺序输入即hweo然后以行优先输出
代码:
#include <iostream> #include <string> using namespace std; int main(){ char a[100][100]; char b[250]; int c, i, j, t, m, flag; string s; while (cin >> c&&c){ cin >> s; for (i = 1, flag = 0; i <= s.size()/c; i++){ if (flag == 0){ for (j = 1, t = c*(i - 1); j <= c; t++, j++){ a[i][j] = s[t]; flag = 1; } } else { for (j = 1, t = c*(i - 1) + c; j <= c; t--, j++){ a[i][j] = s[t - 1]; flag = 0; } } } for (j = 1,t=0; j <= c; j++){ for (i = 1; i <= s.size() / c; i++){ b[t++] = a[i][j]; } } for (i = 0; i < t; i++){ cout << b[i]; } cout << endl; } return 0; }