c++二维数组旋转句子 怎么做

旋转句子
时间限制: 1S类别: 二维数组->简单

问题描述 :

旋转句子,要求把输入的句子按顺时针旋转90度。即输入时的句子是从左至右和自上而下的显示方式,输出时变成从上到下和从右到左的显示方式。换句话说,就是输入的最后一句输出在最左边的列,输入的第一句输出在最右边的列。

输入说明 :

输入时最多100个句子(1句即一行),每句不超过100个字符。合法字符包括:换行符、空格、任何标点符、数字、小写和大写英文字母。

注意:一个句子可能不包含任何字符,即空行。

输出说明 :

按顺时针旋转90度后的那些句子。

注意:如果输入了n个句子,则输出就有n列,输出的最下面一行也有n列。可参见输出范例,每一行都有4个字符,最下面一行的第1、3、4个字符都是空格。

输入范例 :

Rene Decartes once said,

“I think, therefore I am.”
Sample Input
输出范例:
S" R
aI e
m n
pt e
lh
ei D
n e
Ik c
n, a
p r
ut t
th e
e s
r
e o
f n
o c
r e
e
s
I a
i
a d
m ,
.
"

你题目的解答代码如下:(如有帮助,望采纳!谢谢! 点击我这个回答右上方的【采纳】按钮)

#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[101][101];
    int i,j,n=0,maxl=0;
    while (gets(s[n])){
        if(maxl<strlen(s[n]))
            maxl=strlen(s[n]);
        n++;
    }
    for(i=0; i<maxl; i++) {
        for(j=n-1; j>=0; j--)
            printf("%c", i<strlen(s[j]) ? s[j][i] : ' ');
        printf("\n");
    }
    return 0;
}

img