L1-039 古风排版

L1-039 古风排版 - 团体程序设计天梯赛-练习集 (pintia.cn)

题解

这道题主要是要理清思路,题目说要将一段文字按照古代人的排版来排,从右向左竖向排版,具体排版如下:

输入样例:

复制代码
4
This is a test case

输出样例:

复制代码
asa T
st ih
e tsi
 ce s
​

题目说输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。那就要根据给的每列字符数N来确定行数,这样我们就知道用多少大小的二维数组来装这段字符串了,还有一点就是要注意空格,二维数组中如果没有字符来填充的话就需要用空格来代替。

我在代码中用了gets来输入,gets输入与scanf输入有有一些区别,gets是以回车为结束的,并且会将'\0'作为结束符加到字符串最后,而scanf则是以空格为结束。

代码
cpp 复制代码
#include<stdio.h>
#include<string.h>
int main()
{
    int n = 0;
    scanf("%d ",&n);
    char ch[1001]={0};
    gets(ch);
    int len = strlen(ch);
    int col=len/n;
    if(len%n!=0)
    {
        col+=1;
    }
    int j = 0;
    int index = 0;
    char arr[100][100]={0};
    for(j=col-1;j>=0;j--)
    {
        int i = 0;
        for(i=0;i<n;i++)
        {
            if(ch[index]!='\0')
            {
                arr[i][j]=ch[index];
                index++;
            }
            else
            {
                arr[i][j]=' ';
            }
        }
    }
    int i = 0;
    for(i=0;i<n;i++)
    {
        for(j=0;j<col;j++)
        {
            printf("%c",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
相关推荐
WL_Aurora26 分钟前
Python 算法基础篇之什么是算法
python·算法
墨染天姬33 分钟前
[AI]DeepSeek-R1的GRPO算法
人工智能·算法·php
D_C_tyu36 分钟前
JavaScript | 数独游戏核心算法实现
javascript·算法·游戏
qiqsevenqiqiqiqi37 分钟前
MT2048三连 暴力→数学推导→O (n) 优化
数据结构·c++·算法
码之气三段.44 分钟前
十五届山东ccpc省赛补题(update)
数据结构·c++·算法
AI科技星1 小时前
ELN 升级:π 级数自动生成器全域数理架构
大数据·人工智能·python·算法·金融
强盛机器学习~1 小时前
2026年SCI一区新算法-傅里叶变换优化算法(FTO)-公式原理详解与性能测评 Matlab代码免费获取
算法·matlab·进化计算·群体智能·傅里叶变换·元启发式算法
王老师青少年编程1 小时前
csp信奥赛C++高频考点专项训练之贪心算法 --【跳跃与过河问题】:过河问题
c++·算法·贪心·csp·信奥赛·跳跃与过河问题·过河问题
沉默-_-2 小时前
备战蓝桥杯-哈希
c++·学习·算法·蓝桥杯·哈希算法
拼好饭和她皆失2 小时前
基础算法--写给算法小白的模板指南:快速掌握核心代码,蓝桥杯必备模板
算法