解决方案-C++编程实现文字排版 Debug排错

问题描述

C++编程实现文字排版 Debug排错

描述
给一段英文短文,单词之间以空格分隔(每个单词包括其前后紧邻的标点符号)。请将短文重新排版,要求如下:

每行不超过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 <string.h>
using namespace std;

int main()
{
    char words[100][40];//用于保存每一个单词
    int wordsLen[100];// 记录每一个单词的长度
    int n;//  需要处理的单词总数
    cin>>n;
    //输入单词数据,处理后得到每个单词的长度
    for(int i=0;i<n;i++)
    {
        cin>>words[i];
        wordsLen[i]=strlen(words[i]);
    }

    //先输出第一个单词
    int length=wordsLen[0];
    cout<<words[0];
    for(int i=1;i<n;i++)
    {
            //如果该单词,连同前面的一个空格加入后不换行,则输出空格和该单词
            if(length+1+wordsLen[i]<=80)
            {
                length=length+1+wordsLen[i];
                cout<<" "<<words[i];
            }
            else
            {
                //该单词不能在本行输出了,如果length=80自动换行,否则要手动换行。
                if(length<80)
                {
                    cout<<endl;
                }
                //输出下一行第一个单词,重新对下一行的输出字符长度进行统计。
                length=wordsLen[i];
                cout<<words[i];
            }
    }
    cout<<endl;
    return 0;
}

提交后错误,谁能帮我分析分析,程序逻辑上哪里有问题?

原题目

解决方案

http://zhidao.baidu.com/link?url=njHxbL-kH-phHKN7o3wZrxeoLzpzuax71FftaanRAafvTtvZIWDDXNWYgqWeLERhoj9NkEaqQS-rrw7hnhyWrK

时间: 2025-01-31 01:35:39

解决方案-C++编程实现文字排版 Debug排错的相关文章

像word那样的文字排版算法...各位大侠请进

问题描述 像word那样的文字排版算法例如:1.英文单词在换行时不会中间断开2.标点符号不能排在行的首个字符3.按用户输入文章宽度,文章自动变换每行字数等基本功能我想把它封装成以个控件...请各位能人帮帮忙 解决方案 解决方案二:你已经有很清晰的思路了接下来就是一步一步实现它,没做过这个,但有了想法,应该还是可以实现的解决方案三:GUI下?解决方案四://排版帧结构typedefstructtagEB_TSFRAME//TS是排版typeset的意思{unsignedintbTypeset;//

ps路径文字排版技巧

我们都喜欢用photoshop来设计各种漂亮字体的排版,最基本的方法就是使用路径文字排版,本文中小编就为大家详细介绍下路径文字排版方法,希望对大家有帮助! 今天我们来说说文字依照路径来排列的技巧,在开放路径上可形成类似行式文本的效果,如下左图中呈波浪形排列的3个网址文字.还可以将文字排列在封闭的路径内,这样可以形成类似框式文本的效果,如下左图的数个U字母和T字母.它们各自所依靠的路径如下右图所示,很容易看出前者是一条开放形,而后者是两个(不是一个)封闭形. 严格来说,要在掌握了绘制路径的方法后,

10个文字排版秘诀搞定你的PPT设计

  10个文字排版秘诀搞定你的PPT设计          资深视觉设计师 Janie Kliever 在 Design School 发表了一篇文章,列出 10 个能帮你增进文字排版的诀窍和密技,虽然介绍的是英文字型,不过还是相当实用,让我们一起来看看吧! 1.将要表达的讯息配上适当的感觉 用了两种差不多的字型?或是你总是用最喜欢的那一种字型?以上都是没有妥善选择字型的情形. 每种字型都散发独特的情感或个性,也许是友善.新潮.严肃或傻里傻气,但大部分的字型并不是万用的,所以你要判断一个字型对你

CSS实现的网页中文字排版的几种方式

CSS实现的网页中文字排版的几种方式!如果用得上可以直接用现成的了! 1.文字倒排(逆时针转90度)<br><br><span style="font-family:@宋体;color:red">尽人事 顺天命</span><br><br>2.文字正写竖排,中文竖排,从右往左读<br><br><div style="layout-flow: vertical-ideograp

DIV CSS网页制作之不规则文字排版的CSS样式

css|网页 我们在网页设计中,会遇到许多意想不到的情况,不规则文字的排版就是其中之一了,我们该如何面对这样的排版要求呢?CSS代码又该如何编写呢? 遇到这样的情况,通常情况下我们有两种选择: 1.用图片来制作,并应用热区制作链接,这样的方式可以很方便的解决问题,但对搜索引擎很不友好,它不知道你这里到底有什么. 2.用Flash来完成,还可以加上动感的特效,除了同样对搜索引擎不友好之外,还存在着用户是不是安装有flash播放插件的风险,以及浏览器对flash文件的屏蔽的问题. 这两种方法都不是可

不规则文字排版的CSS样式的定义参考方法

css|参考 我们在网页设计中,会遇到许多意想不到的情况,不规则文字的排版就是其中之一了,我们该如何面对这样的排版要求呢?CSS代码又该如何编写呢? 遇到这样的情况,通常情况下我们有两种选择: 1.用图片来制作,并应用热区制作链接,这样的方式可以很方便的解决问题,但对搜索引擎很不友好,它不知道你这里到底有什么. 2.用Flash来完成,还可以加上动感的特效,除了同样对搜索引擎不友好之外,还存在着用户是不是安装有flash播放插件的风险,以及浏览器对flash文件的屏蔽的问题. 这两种方法都不是可

怎么提高WPS文字排版速度

  怎么提高WPS文字排版速度 1.熟练使用几种常用快捷键 初级: Ctrl+N 新建文件 Ctrl+O 打开文件 Ctrl+W 关闭文件 [F12]键: 另存文件 Ctrl+B 字体加粗 Ctrl+U 加下划线 Ctrl+I 字体倾斜 中级: [ctrl+Enter]: 插入分页符 [ctrl+ shift+C]: 复制格式 [ctrl+ shift+V]: 粘贴格式 Ctrl+D 调出"字体"窗口 [ctrl+L]: 左对齐 [ctri+R]: 右对齐 [ctri+C]: 居中 A

WPS 2012文字排版通用技巧

  WPS 2012文字排版通用技巧         WPS 2012是一款很实用的办公软件,接下来小编为大家带来WPS 2012文字排版通用技巧,一起来看看吧! 熟悉选项卡和功能区,用快捷键全面掌控WPS Office 2012 新建一个普通页面的文档,开始设置页眉和页脚.操作过程中注意随时保存. 你怎么做,依然用鼠标点来点去?那就太慢了,不妨试试看WPS Office 2012中重点打造的快捷键操作:新建页面依次敲击Alt+F+N ;进入页眉页脚的编辑Alt+N+H;随时保存更是快捷,只要用

文字排版在网页制作中应遵守的原则

网页的文本排版并不是仅仅在CSS里设置个字体大小那么简单的,想要有好的排版,对细节要下一番功夫才行. 按照我的理解,在遵循Web标准的情况下,网页设计中的文字排版应该遵守以下原则:语义明确.代码简练,善用预定义标签 排版时,语义明确很重要.在Web标准化的思想上,我们要尽量做到结构与样式的分离,我们的代码要尽量简洁,避免无效的.无意义的代码.过多的无意义代码不仅不利于网站的日常维护,增加加载与解释时间,还会对将来网站的改版.重构造成障碍.如果不能做到按语义标识文本的各类元素,并且将样式分离并重新