PAT乙类1009 说反话 (20 分)
一、 题目
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用 1 个空格分开,输入保证句子末尾没有多余的空格。输出格式:
每个测试用例的输出占一行,输出倒序后的句子。输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
二、代码
- 核心函数
- 未使用的getline(cin, str2); 此函数直接读入输入的一行到str2字符数组中,包含换行符、空格!!注意使用的是char数组,不是string(也就是说ACM中直接读入一行未知何时结束的数据的时候,这种方法可以奏效;读入一行后自动运行下面的代码)
- getchar: 读入一个字符,包含换行符,空格。
- 上面的两个关键方法就是来解决 输入不知道何时终结的字符的方法!!!!!
分析
1) 我原来想法: 我原来打算使用string数组来做,结果发现无法判断何时结束输入,’\n’只是字符,string压根不识别!!
2) 本题采用了定义数组来记录空格的方法求解。 空格与空格之间的间隙就是每个单词。
3)因为要满足每个单词前后都有空格,所以第一个单词的前面和最后一个单词的后面都要加一个空格,这样所有单词的处理就会一致。 for(i=strSign[k-1]+1; i<strSign[k]; i++) 。 从前一个空格下一个开始读,到下一个空格的前一个结束。。易错点
1) 注意在第一个单词前面和最后一个单词的后面都要添加空格
2)不要忘记,最后输入没有空格
#include <iostream>
#include <stdio.h>
using namespace std;int main() {char str[200];char strSign[100] = {0};strSign[0] = -1;//string str2;int i=0, j=1, k;//getline(cin, str2); //geline读入一行数据,而且读入的是字符串string,不是char 不包含换行符!!!! char c;while(1) {c = getchar();if(c == '\n') {break;}if(c == ' ') {strSign[j] = i;j++;}str[i] = c;i++;//cout<<c;}str[i] = ' ';strSign[j] = i;for(k=j; k>=1; k--) {for(i=strSign[k-1]+1; i<strSign[k]; i++) {cout<<str[i];}if(k != 1) {cout<<" ";}}return 0;
}
后补第二种方法!!!
- 核心函数
- 用的char的二维数组!!! 二维数组的行数、列数只要大于就行!!!
- 因为题目的例子是一段字符串!!在测试的时候,系统自己会自动中断输入!
cin是以空格为分隔符的!!将几个字符串分开 - 在自己测试的时候,要用crtl + Z 中断输入!!!
#include <iostream>
using namespace std;int main() {char str[20][80];int i=0;while(cin>>str[i]) {i++;}for(int j=i-1; j>=0; j--) {if(j!=i-1) cout<<" ";cout<<str[j]; }return 0;
}
PAT乙类1009 说反话 (20 分)相关推荐
- PAT(乙级) 1009 说反话 (20 分)(Python 3实现)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...
- C++学习之路 | PTA乙级—— 1009 说反话 (20分)(精简)
1009 说反话 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组 ...
- 1009 说反话 (20分)
@[TOC](1009 说反话 (20分)) 1009 说反话 (20分) 利用 vector<string 来存储多个数据 总觉得哪里有问题... 空格似乎也会正常存储(这点不是很明白,旺评论 ...
- 【PAT乙级】1009 说反话 (20 分)
https://pintia.cn/problem-sets/994805260223102976/problems/994805314941992960 朴素写法: #include<stdi ...
- 满分简便代码:1009 说反话 (20分)
立志用更少的代码做更高效的表达 Pat乙级最优化代码+题解+分析汇总-->传送门 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出 ...
- 1009 说反话 (20 分)(c语言)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...
- PAT乙类1013 数素数 (20 分)
一.题目 令 Pi表示第 i 个素数.现任给两个正整数 M≤N≤10^4,请输出 PM到 PN的所有素数.输入格式: 输入在一行中给出 M 和 N,其间以空格分隔.输出格式: 输出从 PM到 P ...
- PAT 乙级 1009. 说反话 (20) Java版
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区 ...
- 1009 说反话 (20分)快速易理解C++版
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过 80 的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母(大小 ...
最新文章
- oracle张大鹏,Oracle数据库性能优化
- 关于SAP Spartacus的Action - LoadCmsPageData
- 如何测试web服务器性能,如何执行Web服务器性能基准测试?
- Spring MVC 使用优化建议
- web.xml配置简介
- 从零实现深度学习框架——理解正则化(一)
- C#网络编程(Socket编程)
- 正态分布某一点的概率怎么算_正态分布的抽卡概率算法
- c语言逻辑运算符组合,C语言的逻辑运算符
- 人工智能史上的二次低谷——第一次低谷
- ikuai路由管理系统教程
- 戴尔笔记本修改硬盘模式为AHCI再安装ubuntu
- LeetCode 176 第二高的薪水
- python 表示2的n次方
- 诺基亚Lumia 920更新后出现屏幕亮度自动调节问题?
- Hadamard production
- “yield”关键字有什么作用?
- 16个掘金量化社区的热门话题送给各位Quant的量化交易干货
- 双向链表 - DoubleLinkedList
- Fedora 21 安装 Budgie Desktop
热门文章
- 关于MapReduce中自定义Combine类(一)
- [Leetcode]@python 107. Binary Tree Level Order Traversal II
- POJ 3041 Asteroids (对偶性,二分图匹配)
- .net String.Format数字格式化输出
- hihocoder1089 Floyd算法
- 简单的C语言程序合集-2
- Linux C语言实现ls -l
- nyoj187 快速查找素数
- linux终端贪吃蛇,分享|nSnake: 在Linux的终端上玩经典的贪食蛇游戏
- mysql 用户管理表_Mysql—用户表详解(mysql.user)