王旭·wangxu_a 2024-12-04 21:42 采纳率: 100%
浏览 27
已结题

【例74.2】 古风排版

【例74.2】 古风排版
描述

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

输入描述

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

输出描述

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

用例输入 1

4
This is a test case
用例输出 1

asa T
st ih
e tsi
ce s
来源
一本通·字符数组与字符串·3427:【例74.2】 古风排版

#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin>>n;
    string a;
    getline(cin,a);
    char b[n+1][1001];
    for(int i=0;i<a.size();i++){
        b[i%n+1][i/n+1]=a[i];
    }
    /*
    t asa
    hi ts
    ist e
    s ec
    当然,为了从右到左,i要从1~n输出,j要从n~1输出。
    */
    for(int i=1;i<=n;i++){
        for(int j=n;j>=1;j--){
            cout<<b[i][j];
        }
        cout<<endl;
    }
    return 0;
}

img


啥东西?全错?好像没错呀!

自测输入
4
This is a test case
预期输出

asa T
st ih
e tsi
ce s

实际输出

  • 写回答

1条回答 默认 最新

  • 关注

    以下回复参考:皆我百晓生券券喵儿等免费微信小程序作答:

    从你提供的代码和描述来看,代码应该能够按照古风排版的方式输出字符串。但是,根据提供的测试数据,实际输出和预期输出是相同的。所以,可能存在以下问题:

    1. 输入和输出数据可能没有正确读取或写入。检查你的输入和输出方式是否正确。
    2. 你的程序可能在某些情况下不能正确处理字符或字符串。确保你的程序可以处理所有的测试情况,包括包含空格和其他特殊字符的情况。

    如果输入数据和预期输出正确无误,且你在代码中遇到了其他方面的问题,你可能需要检查以下可能的问题点:

    1. 内存管理:检查是否有内存泄漏或越界的问题。
    2. 代码逻辑:检查你的代码逻辑是否正确实现了古风排版的要求。

    关于你提供的图1和图2内容,它们看起来像是程序运行结果的界面显示,提供了运行信息、测试结果等。这些内容并不涉及编程代码的问题,所以在这里并没有提供足够的信息来确定问题所在。如果这些运行结果显示的是你的程序没有通过测试,你需要根据提供的测试点和结果分析找出可能的问题并进行修复。如果你不确定如何解决这个问题,你可以提供更多关于测试数据和实际输出的详细信息,我会尽力帮助你分析并找到解决方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 12月4日