[土狗之路]coursera C语言进阶习题 文字排版
来源:互联网 发布:海洋cms模板资源采集 编辑:程序博客网 时间:2024/06/11 14:05
编程题#3:文字排版
来源: POJ (Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)
注意: 总时间限制: 1000ms 内存限制: 65536kB
描述
给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号)。请将短文重新排版,要求如下:
每行不超过80个字符;每个单词居于同一行上;在同一行的单词之间以一个空格分隔;行首和行尾都没有空格。
输入
第一行是一个整数n,表示英文短文中单词的数目. 其后是n个以空格分隔的英文单词(单词包括其前后紧邻的标点符号,且每个单词长度都不大于40个字母)。
输出
排版后的多行文本,每行文本字符数最多80个字符,单词之间以一个空格分隔,每行文本首尾都没有空格。
样例输入:
84
One sweltering day, I was scooping ice cream into cones and told my four children they could "buy" a cone from me for a hug. Almost immediately, the kids lined up to make their purchases. The three youngest each gave me a quick hug, grabbed their cones and raced back outside. But when my teenage son at the end of the line finally got his turn to "buy" his ice cream, he gave me two hugs. "Keep the changes," he said with a smile.
样例输出:
One sweltering day, I was scooping ice cream into cones and told my four
children they could "buy" a cone from me for a hug. Almost immediately, the kids
lined up to make their purchases. The three youngest each gave me a quick hug,
grabbed their cones and raced back outside. But when my teenage son at the end
of the line finally got his turn to "buy" his ice cream, he gave me two hugs.
"Keep the changes," he said with a smile.
开始贴代码了:
#include <iostream>#include <cstring>using namespace std;int main(){char words[1000][40]; //用于保存每一个单词int wordsLen[1000]; // 记录每一个单词的长度int n; // 需要处理的单词总数cin >> n;cin.get();//cin之后要用cin.get()读取换行符,一开始没注意到错误在这里,还是基础不牢靠for (int i = 0; i < n;i++) //输入单词数据,处理后得到每个单词的长度{char temp;for (int j = 0; j < 40;j++) {cin.get(temp); if (temp != ' '&&temp != '\n') {words[i][j] = temp;}else{wordsLen[i] = j;break;}}}//先输出第一个单词int length = wordsLen[0];for (int j = 0; j < wordsLen[0]; j++)cout << words[0][j];for (int i = 1; i < n; i++){//如果该单词,连同前面的一个空格加入后不换行,则输出空格和该单词if (length + 1 + wordsLen[i] <= 80){length = length + 1 + wordsLen[i];cout << ' ';for (int j = 0; j < wordsLen[i]; j++)cout << words[i][j];}else//如果该单词,连同前面的一个空格加入后换行,则输出回车和该单词,另外重置本行现有长度为单词长度{cout << endl;length = wordsLen[i];for (int j = 0; j < wordsLen[i]; j++)cout << words[i][j];}}return 0;}
- [土狗之路]coursera C语言进阶习题 文字排版
- [土狗之路]coursera C语言进阶 习题 分配病房
- [土狗之路]coursera C语言进阶 习题 寻找山顶
- [土狗之路]coursera上C语言进阶习题 括号匹配
- [土狗之路]coursera C语言进阶习题 计算矩阵边缘元素之和
- [土狗之路]coursera C语言进阶习题 二维数组右上左下遍历
- [土狗之路]coursera C语言进阶 习题 配对碱基链
- [土狗之路]coursera C语言进阶 习题 含k个3的数
- [土狗之路]coursera C语言进阶 习题 字符串中次数第2多的字母
- [土狗之路]coursera C语言进阶 习题 运算符判定
- [土狗之路]coursera C语言进阶 习题 寻找平面上的极大点
- [土狗之路]coursera C语言进阶练习题 排队游戏
- [土狗之路]coursera上C语言进阶第二周作业
- [土狗之路]coursera上C语言基础第七周作业
- [土狗之路]coursera C语言基础12周(期末考试)作业
- 文字排版 (Coursera 程序设计与算法 专项课程2 C程序设计进阶 李戈;OpenJudge)
- [土狗之路]coursera 上面C++第8周作业
- [土狗之路]Coursera 北京大学C++ 魔兽世界:备战
- 性能优化
- JVM内幕:Java虚拟机详解
- Python学习笔记 - 7.列表(List)
- 我的天空
- Apple Pay编程指导
- [土狗之路]coursera C语言进阶习题 文字排版
- Android ListView 工作理完全解析 带你从源码的角度彻底理解
- POJ--3723 Conscription
- Soldier and Badges
- yii kartik\grid\GridView 插件应用
- linux 下 利用mutt 发送 带附件的邮件
- mysql系列1-基本sql优化
- C#引用第三方动态连接库dll时出现 System.MissingMethodException: 找不到方法的解决方案
- 从关系型数据库到非关系型数据库