B1009 说反话

/*
题目描述
给定一个英语,要求编写程序,将句中所有单词按颠倒顺序输出

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

输入格式
每个测试用例的输出展一行,出倒叙后的句子。

样例输入
Hello World Here I Come

样例输出
Come I Here World Hello
**************************************************
思路
使用gets函数读入一整行,从左至右枚举每一个字符,以空格为为分隔符对单词进行划分
并按照顺序存放到二维字符数组中,最后按单词输入顺序的逆序来输入所有单词

注意点
1、最后一个单词之后输入空格会导致“格式错误”。
2、由于PAT是单点测试,因此产生了下面这种更简洁的方法,即使用EOF来判断是否已经输入完毕
*/
#include <iostream>
#include <stdio.h>
#include <string.h>
using namespace std;
int main(){
    char str[90];
    gets(str);
    int len =strlen(str),r=0,h=0;  //r为行,h为列
    char ans[90][90];    //ans[0]~ans[r] 存放单词
    for(int i=0;i<len;i++)
    {
        if(str[i]!=‘ ‘){    //如果不是空格,则存放ans[r][h],并令h++
            ans[r][h++]=str[i];
        }
        else {    //如果是空格,说明一个单词结束,行r增加1,列恢复至0
            ans[r][h]=‘\0‘;      //末尾是结束符\0
            r++;
            h=0;
        }
    }
    for(int i=r;i>=0;i--)   //倒着输出单词即可
    {
        printf("%s",ans[i]);
        if(i>0) printf(" ");
    }
return 0;
}

/*
#include <stdio.h>

int main()
{
    char str[80][80];             //二维数组每一行存放一个单词
    char dsr[80];                 //存放输入的字符串
    int i, j = 0, k = 0;
    for(i = 0; i < 80; i++) {
        scanf("%c", &dsr[i]);
        if(dsr[i] == ‘\n‘) {      //当输入回车时结束
            break;
        }
    }
    dsr[i] = ‘\0‘;                //让字符串中最后一个字符(回车符)等于‘\0‘
    for(i = 0; i < 80; i++) {
        if(dsr[i] == ‘\0‘) {
            str[j][k] = ‘\0‘;
            break;
        }
        str[j][k]  = dsr[i];      //将单词存到第 j 行
        k++;
        if(dsr[i] == ‘ ‘) {
            str[j][k-1] = ‘\0‘;   //将空格换成‘\0‘
            j++;
            k = 0;
        }
    }
    int t = j;                    //共有 t 个单词

    for(j = t ; j >= 0; j--) {
        printf("%s", str[j]);
        if(j != 0) {
            printf(" ");
        }
    }

    return 0;
}
*/
时间: 2024-10-13 18:49:09

B1009 说反话的相关文章

PAT B1009 说反话

PAT B1009 说反话 题目描述: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格. 输出格式: 每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hell

PAT 1009 说反话 C语言

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include<stdio.h> 2 #

PAT 乙级 1009 说反话 (20) C++版

1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入

1009.说反话

1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入

说反话

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello #include<stdio.h> int m

1159: 零起点学算法66——反话连篇

1159: 零起点学算法66--反话连篇 Time Limit: 1 Sec  Memory Limit: 64 MB   64bit IO Format: %lldSubmitted: 1470  Accepted: 626[Submit][Status][Web Board] Description 把输入的字符按照反着顺序输出 Input 多组测试数据 每组一行(每组数据不超过200个字符) Output 按照输入的顺序反着输出各个字符 Sample Input I am a boy. S

Programming Ability Test学习 1009. 说反话 (20)

1009. 说反话 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入

10-0. 说反话 (20)

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格. 输出格式:每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 1 #include <stdio.h> 2

2018-09-25 1009 说反话

1009 说反话 (20 分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格. 输出格式: 每个测试用例的输出占一行,输出倒序后的句子. 输入样例: Hello World Here I Come 输出样例: Come I Here World Hello 作者