iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >PTA刷题C语言编程顺序颠倒输出实现
  • 472
分享到

PTA刷题C语言编程顺序颠倒输出实现

2024-04-02 19:04:59 472人浏览 安东尼
摘要

目录 这道题,是我遇见对数组元素的掌握与使用较为灵活的题目。 下面代码是我刚接触c++,刚学完类的一系列知识,连入门都没过,对C++的强大还未有多大认知,还是极具C语言的风格。 我看

在这里插入图片描述

这道题,是我遇见对数组元素的掌握与使用较为灵活的题目。
下面代码是我刚接触c++,刚学完类的一系列知识,连入门都没过,对C++的强大还未有多大认知,还是极具C语言的风格。

我看过一篇用C++完成的比这个简单多了。

C语言也可以用栈来完成,虽然我有栈的实现函数,但我不愿去搞,就这样吧,实现也是对自己知识点掌握的加深认知。


#include <iOStream>
#include <cstring>
int main(void)
{
    int a = 0;
    char ch;
    char arr1[500001];//输入数组
    char arr2[500001];//输出数组
    while ((ch = getchar()) != '\n')//读入字符串
    {
        arr1[a++] = ch;
    }
    arr1[a] = '\0';
    int len = strlen(arr1);
    int i = 0;
    int dest = len - 1;//从字符串尾部开始遍历
    while (dest >= 0)
    {
        if (arr1[dest] == ' ' && arr1[dest + 1] != ' ' && arr1[dest + 1] != '\0' || (dest == 0 && arr1[0] != ' '))//元素为单词的条件
        {
            if (i != 0)
                arr2[i++] = ' ';
            int last = dest + 1;
            if (dest == 0 && arr1[0] != ' ')//满足条件,改变last的值
            {
                last = dest;
            }
            while (arr1[last] != ' ' && arr1[last] != '\0')//将单词拷贝到输出数组中
            {
                arr2[i++] = arr1[last++];
            }
        }
        dest--;
    }
    arr2[i] = '\0';//字符串结束
    std::cout << arr2 << std::endl;
    return 0;
}

尽量理解吧


arr1[dest] == ' ' && arr1[dest + 1] != ' '&&arr1[dest+1]!='\0'

是为了确定每个单词出现的条件。


(dest == 0 && arr1[0] != ' ')

是为了处理第一个元素就是单词的情况。


while (arr1[last] != ' ' && arr1[last] != '\0')
            {
                arr2[i++] = arr1[last++];
            }

负责将单词拷贝到输出数组上,同时符号要求。


if(i!=0)
  arr2[i++] = ' ';

这个是,当第一个单词拷贝过去后,判断是否后面还有有单词,且能进这个域,就代表后面还有单词,要加一个空格的元素。

以上就是PTA刷题C语言编程顺序颠倒输出实现的详细内容,更多关于PTA刷题C语言倒序的资料请关注编程网其它相关文章!

--结束END--

本文标题: PTA刷题C语言编程顺序颠倒输出实现

本文链接: https://www.lsjlt.com/news/136067.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作