旋转句子
时间限制: 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;
}