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;
}
相关推荐
.YM.Z1 小时前
【数据结构】:排序(一)
数据结构·算法·排序算法
Chat_zhanggong3451 小时前
K4A8G165WC-BITD产品推荐
人工智能·嵌入式硬件·算法
百***48071 小时前
【Golang】slice切片
开发语言·算法·golang
墨染点香1 小时前
LeetCode 刷题【172. 阶乘后的零】
算法·leetcode·职场和发展
做怪小疯子1 小时前
LeetCode 热题 100——链表——反转链表
算法·leetcode·链表
智者知已应修善业2 小时前
【51单片机普通延时奇偶灯切换】2023-4-4
c语言·经验分享·笔记·嵌入式硬件·51单片机
晚风(●•σ )2 小时前
C++语言程序设计——11 C语言风格输入/输出函数
c语言·开发语言·c++
X***48963 小时前
C源代码生成器
c语言·开发语言
做怪小疯子3 小时前
LeetCode 热题 100——矩阵——旋转图像
算法·leetcode·矩阵
努力学习的小廉4 小时前
我爱学算法之—— BFS之最短路径问题
算法·宽度优先