UVA 490 Rotating Sentences

UVA 490 Rotating Sentences

题意:将n(n<100)行字符串顺时针旋转90度输出,每行字符数少于100个。

Sample Input:

Rene Decartes once said,
“I think, therefore I am.”

Sample Output:

“R
Ie
n
te
h
iD
ne
kc
,a
r
tt
he
es
r
eo
fn
oc
re
e
s
Ia
i
ad
m,
.

题解:原本想着用动态数组的,但是查了下题解发现,用二维数组更加方便,就是 使用二维数组的时候gets(a [ i ] ) 就是把a [ i ] 看成一个数组名,然后进行gets。但是,在初始化数组的时候,memset(a , 0 , sizeof( a ))这里就是 对全部的 a 进行初始化。 然后需要记录一下 最长字符串长度,为接下来输出的时候做好准备,其实输出才是重头戏,就注意第二个循环怎么写就好了。

//UVA 490
//Rotating Sentences
//by Yanx
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main()
{
    char a[110][110];             //这个二维数组都是字符型的,不过字符 ‘ 1 ’ + 1 =  ‘ 2 ’
    int i=0;
    int max=0,count=0;  
    memset(a,\0,sizeof(a));       //整个二维数组初始化
    while(gets(a[i])!='\0')     //二维数组 所以用gets的时候有一个变量不写。
    {

        int len=strlen(a[i]);
        if(len>max) max=len;    
        count++;    i++;
    }

    for(int j=0;j<max;j++)
    {
        for(int k=i-1;k>=0;k--)
        {
            if(a[k][j]=='\0') printf(" ");
            else printf("%c",a[k][j]);
        }
        printf("\n");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值