• 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]='';      //末尾是结束符
                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] == '
    ') {      //当输入回车时结束
                break;
            }
        }
        dsr[i] = '';                //让字符串中最后一个字符(回车符)等于''
        for(i = 0; i < 80; i++) {
            if(dsr[i] == '') {
                str[j][k] = '';
                break;
            }
            str[j][k]  = dsr[i];      //将单词存到第 j 行
            k++;
            if(dsr[i] == ' ') {
                str[j][k-1] = '';   //将空格换成''
                j++;
                k = 0;
            }
        }
        int t = j;                    //共有 t 个单词
    
        for(j = t ; j >= 0; j--) {
            printf("%s", str[j]);
            if(j != 0) {
                printf(" ");
            }
        }
    
        return 0;
    }
    */
  • 相关阅读:
    存储过程与函数
    12个非常实用的JavaScript小技巧
    用JS获取地址栏参数的方法
    sql server split函数
    Matplotlib 保存图片、图画接口和显示中文的使用方法
    pandas 分组操作
    pandas 字符串相关操作以及数据间的合并与重塑
    pandas 分层索引
    pandas 轴索引的重命名,离散化,异常值的处理与随机方法
    pandas 缺失值、重复值的处理与值的替换
  • 原文地址:https://www.cnblogs.com/z-712/p/7324017.html
Copyright © 2020-2023  润新知