PAT 乙级 1009

来源:互联网 发布:杭州淘宝小镇 编辑:程序博客网 时间:2024/06/05 06:02

1009. 说反话 (20)

时间限制
400 ms
内存限制
65536 kB
代码长度限制
8000 B
判题程序
Standard
作者
CHEN, Yue

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。

输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。

输出格式:每个测试用例的输出占一行,输出倒序后的句子。

输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
思路:在空格上做文章,遇到第一个空格的时候存到第一个数组中,再遇到空格的时候存到另一个数组中

代码实现:#include<stdio.h>

#include<string.h>

int main()

{

    char a[85];

    char b[85][85];//存储数组,遇见第一个空格就存入,在遇见就存入另一个数组,所以要用一个二数组

    gets(a);

    int i,len=strlen(a);

    int x=0,y=0;

    for(i=0;i<len;i++)

    {

        if(a[i]!=' ')

            b[x][y++]=a[i];//当遇到第一个空格的时候Y++存入数组

        else

        {

            ++x;//遇到空格X++就开始存入下一个单词

            y=0;//y从新从0开始计数

        }

    }

    for(i=x;i>=0;--i)//数组的最后一个,倒序输出

    {

        printf("%s",b[i]);

        if(i>0)

            printf(" ");

    }

    return 0;

}

 

心得:存储数组要用一个二位数组,遇见第一个空格就存入,在遇见就存入另一个数组,所以要用一个二维数组


1 0