L1-039. 古风排版
Posted diamondDemand
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了L1-039. 古风排版相关的知识,希望对你有一定的参考价值。
cin.getline(a, 3)只会向数组a中读进2个字符;
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
using namespace std;
int main()
{
int n;
char a[1001];
cin >> n;
getchar();
cin.getline(a, 1001);
int len = strlen(a);
int k=0; //计数器
int row;
if(len%n==0)
row = len/n;
else
row = len/n+1; //c++默认向下取整
//char b[n][row];
char *b[n];
for(int i=0; i<n; i++)
{
char * temp= (char*)malloc(sizeof(char)*(row+1));
memset(temp, ‘ ‘, sizeof(char)*row);
b[i] = temp;
}
for(int i=0; i<n; i++)
b[i][row] = ‘\0‘;
for(int i=row-1; i>-1; i--)
for(int j=0; j<n; j++) //将a中的字符串放到二维数组中
{
b[j][i] = a[k];
k++;
if(k==len)
goto breakLoop;
}
breakLoop: cout << b[0];
for(int i=1; i<n; i++)
{
cout << endl << b[i];
}
return 0;
}
以上是关于L1-039. 古风排版的主要内容,如果未能解决你的问题,请参考以下文章
题解PTA团体程序设计天梯赛L1-039 古风排版 (20 分) Go语言 | Golang