PTA:说反话-加强版
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。
输入格式:
测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用若干个空格分开。
输出格式:
每个测试用例的输出占一行,输出倒序后的句子,并且保证单词间只有1个空格。
输入样例:
Hello World Here I Come
输出样例:
Come I Here World Hello
代码长度限制
16 KB
时间限制
300 ms
内存限制
64 MB
#include<stdio.h>
void fun(int a,char c[],int n) //定义打印函数,用来打印除第一个单词以外的单词
{int i=a;for(i=a;c[i]!=' '&&i<n;i++)//i<n这个条件是用来防止末尾单词后有多个空格{if(c[i]!=' '){printf("%c",c[i]);}}for(i=0;i<a;i++)//用于应对开头就是空格的情况,同时打印单词后的一个空格{if(c[i]!=' '){printf(" ");break;}}
}
int main()
{int i,n,a;char c[500001],*p;//数组长度一定要足够大p=c;gets(c);n=strlen(c);for(i=n-1;i>=0;i--){if(c[i]==' '&&c[i+1]!=' '&&c[i+1]!='\0')//a用来记录每个单词开始打印的位置{a=i+1;fun(a,c,n);}}while(*p!=' ')//用来打印开头不为空格的第一个单词{if(*p!=' '){printf("%c",*p);}p++;}printf("\n");return 0;}
无注释如下:
#include<stdio.h>
void fun(int a,char c[],int n)
{int i=a;for(i=a;c[i]!=' '&&i<n;i++){if(c[i]!=' '){printf("%c",c[i]);}}for(i=0;i<a;i++){if(c[i]!=' '){printf(" ");break;}}
}
int main()
{int i,n,a;char c[500001],*p;p=c;gets(c);n=strlen(c);for(i=n-1;i>=0;i--){if(c[i]==' '&&c[i+1]!=' '&&c[i+1]!='\0'){a=i+1;fun(a,c,n);}}while(*p!=' '){if(*p!=' '){printf("%c",*p);}p++;}printf("\n");return 0;}
PTA:说反话-加强版相关推荐
- 7-25 说反话-加强版 (20分)
7-25 说反话-加强版 (20分) 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单 ...
- 7-15 说反话-加强版 (20 分)#
7-15 说反话-加强版 (20 分)# 7-15 说反话-加强版 (20 分) 强行解释# 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不,咱现在也没学过,咱也不敢问) 那 ...
- 7-15 说反话-加强版 (20 分)
7-15 说反话-加强版 (20 分) PAT 程序设计天梯赛 韩旭051 7-15 说反话-加强版 (20 分) 强行解释 先输出最后的单词,后输入先输的单词?(这不就是队列吗?先入队,后出队.不, ...
- PTA-7-32 说反话-加强版(C语言)
7-32 说反话-加强版 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格 ...
- c语言 PTA 基础编程题目集 编程题 7-32 说反话 加强版 的分析
这里想跟大家谈一谈pta上的一个编程题,说反话的加强版,这道题题目很好理解,可是编程的思路却十分难找,代码更是难以看懂.这里我想跟大家分享一种思路,并做出详细的分析. #include<stdi ...
- PTA基础编程题目集-7-32 说反话-加强版
我不知道我这个到底错在哪里,就sample输出错误,其他的都是对的,但是我怎么都没有看出这个到底错在哪里! #include<iostream> #include<algorithm ...
- PTA 7-32 说反话-加强版 (20分)
给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由英文字母 ...
- PTA 6-5 说反话-加强版 (C)(通俗易懂还有图解)
要求: 给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出. 输入格式: 测试输入包含一个测试用例,在一行内给出总长度不超过500 000的字符串.字符串由若干单词和若干空格组成,其中单词是由 ...
- PAT基础编程题目集 7-32 说反话-加强版
#include <stdio.h> #include <string.h> int main() {char s[600000];scanf("%[^\n]&quo ...
最新文章
- python-正则表达式练习题
- 200多位专家热议“智慧城市” 建议尽快完善标准体系
- 十分钟入门 RocketMQ
- 微信小程序长按保存图片
- 304 vue 启动项目打开页面_Vue搭建项目工程(续)
- MVC模式 在Java Web应用程序中的实现
- MinGW编译wxWidget
- linux vim 高亮查找,vim技巧:用列表形式显示所有搜索到的内容,去掉搜索内容的高亮...
- web性能优化(理论)
- Linux CAN通信
- 【Flink】大数据分析常用去重算法分析『HyperLogLog 篇』
- 学习matlab(十七)——信号处理
- 工控网络安全分支-电力行业网络安全建设
- 【Git】clone项目push项目没反应,Cloning into...没下载
- iOS前后台切换和监听
- 斯坦福大学公开课IOS 7学习笔记 (1)
- EF(EntityFramework) 的 CodeFirst 使用指南二(基本使用)
- HAL + RT_Thread = STM32外设用不了? NoNoNo!!
- C++跟C#获取电脑上连接的多个摄像头名称与编号
- 一个老程序员的忠告:千万不要一辈子靠技术生存