C语言训练题:文字排版

这是一篇关于C语言的编程练习,目标是给定一段英文短文,按照每行不超过80个字符,单词居中,单词间一个空格的规则进行排版。输入包含单词数量和单词串,输出为排版后的多行文本。
摘要由CSDN通过智能技术生成

Description
给一段英文短文,单词之间以空格分隔(每个单词应包括其前后紧邻的标点符号)。请将短文重新排版,要求如下:
每行不超过80个字符;每个单词居于同一行上;在同一行的单词之间以一个空格分隔;行首和行尾都没有空格。
Input
第一行是一个整数n,表示英文短文中单词的数目. 其后是n个以空格分隔的英文单词(单词包括其前后紧邻的标点符号,且每个单词长度都不大于40个字母)。
Output
排版后的多行文本,每行文本字符数最多80个字符,单词之间以一个空格分隔,每行文本首尾都没有空格。

#include <iostream>
using namespace std;
int main() {
    int m = 0;
    int i = 0, j = 0, k = 0, c = 0;
    int b[1000] = {}; //存放每个单词的字符数
    char a[1000][40] = {}; //存放输入的短文
    cin >> m; //输入短文的单词数
    for(i = 0; i < m; i++) cin >> a[i]; 
    for(i = 0; i < m; i++) //计算每个单词的字符数
        for(j = 0;; j++){ 
            if(a[i][j] != '\0') b[i]++;
            else break;
        }
    for(i = 0; i < m; i++){ //输出短文
        k = k + b[i] + 1; //累计字符&#x
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值