前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PTA刷题记录:L1-039 古风排版 (20分)

PTA刷题记录:L1-039 古风排版 (20分)

作者头像
英雄爱吃土豆片
发布2020-11-12 10:42:43
9431
发布2020-11-12 10:42:43
举报

L1-039 古风排版 (20分)

题目描述: 中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。

输入格式: 输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。

输出格式: 按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。

输入样例: 4 This is a test case 输出样例: asa T st ih e tsi ce s

解题思路: 定义一个二维数组,将字符串按照古风排版放入其中。 C++11的数组初始化在网站上貌似没效果,得自己写循环初始化数组。

通关代码:

代码语言:javascript
复制
#include <iostream>

using namespace std;

int main() {
	int row, column;
	string str;
	
	cin >> row;
	cin.ignore();
	getline(cin, str);
	
	if (str.size() % row == 0) {
		column = str.size() / row;
	} else {
		if (str.size() <= row) {
			column = 1;
		} else {
			column = (str.size() / row) + 1;
		}
	}
		
	char mat[row][column];
	
	for (int i = 0; i < row; i++) {
		for (int j = 0; j < column; j++) {
			mat[i][j] = ' ';
		}
	}
	
	int p = 0;
	for (int j = column - 1; j > -1; j--) {
		for (int i = 0; i < row; i++) {
			if (p != str.size()) {
				mat[i][j] = str[p];
				p++;
			}
		}
	}
	
	for (int i = 0; i < row; i++) {
		for (int j = 0; j < column; j++) {
			cout << mat[i][j];
		}
		cout << endl;
	}
	
	return 0;
} 

通关截图:

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-11-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • L1-039 古风排版 (20分)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档