题目:字符排序

题目介绍:输入一组以空格隔开的字数串,将它们奇数位升序排序,偶数位降序排序,再重新输出成新的字数串。

例:

输入:

4 6 2 3 6 7 8 1

奇数位:4 2 6 8 ——2 4 6 8

偶数位:6 3 7 1 ——7 6 3 1

输出:

2 7 4 6 6 3 8 1

分析:未预定输入位数,数组处理即可。

代码:

 #include <iostream>
#include <string>
#include <conio.h>
using namespace std;
int main()
{
char a[],b[],d[];
int i = ;
int k = ;
int l = ;
char mid;
char c;
while ((c=_getch()) != '\r')
{
if (c >= ''&&c <= '')
{
a[i]=c;
cout << a[i] << " ";
i++;
}
}
cout << endl;
for (int j = ; j < i;j++)
{
if (j % == )//奇数位
{
b[k] = a[j];
k++;
}
if (j % == )//偶数位
{
d[l] = a[j];
l++;
}
}
for (int j = ; j < k; j++)
{
for (int e = ; e < k; e++)
{
if (b[j] > b[e] &&( j < e))
{
mid = b[j];
b[j] = b[e];
b[e] = mid;
}
}
}
for (int j = ; j < k; j++)
{
cout << b[j] << " ";
}
cout << endl;
for (int j = ; j < l; j++)
{
for (int e = ; e < l; e++)
{
if (d[j] < d[e] && (j < e))
{
mid = d[j];
d[j] = d[e];
d[e] = mid;
}
}
}
for (int j = ; j < l; j++)
{
cout << d[j] << " ";
}
cout << endl;
for (int j = ; j < i; j++)
{
if (b[j] >= ''&&b[j] <= ''&&d[j] >= ''&&d[j] <= '')
{
cout << b[j] << " " << d[j] << " ";
}
}
}

结果:

分析:若要进一步优化代码,可以从排序入手,比如设置一个max函数输入为a,b判定大小返回true或者false;或者直接用排序函数sort;将奇数位和偶数位分别储存进不同数组好处是思路清晰,如果优化可以放在一个数组中用if来区分奇偶排序。

笔试题——C++字符排序的更多相关文章

  1. C#经典笔试题-获取字符串中相同的字符以及其个数

    public Dictionary<char,int> GetStrSameAs(string str){ //将字符串转换成一个字符数组. char[] charArray=str.To ...

  2. 也许你需要点实用的-Web前端笔试题

    之前发的一篇博客里没有附上答案,现在有空整理了下发出来,希望能帮助到正在找工作的你,还是那句话:技术只有自己真正理解了才是自己的东西,共勉. Web前端笔试题 Html+css 1.对WEB标准以及w ...

  3. C/C++ 笔试题

    /////转自http://blog.csdn.net/suxinpingtao51/article/details/8015147#userconsent# 微软亚洲技术中心的面试题!!! 1.进程 ...

  4. 收藏所用C#技术类面试、笔试题汇总

    技术类面试.笔试题汇总 注:标明*的问题属于选择性掌握的内容,能掌握更好,没掌握也没关系. 下面的参考解答只是帮助大家理解,不用背,面试题.笔试题千变万化,不要梦想着把题覆盖了,下面的题是供大家查漏补 ...

  5. C/C++笔试题(很多)

    微软亚洲技术中心的面试题!!! .进程和线程的差别. 线程是指进程内的一个执行单元,也是进程内的可调度实体. 与进程的区别: (1)调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位 (2 ...

  6. [NOIp 1998 提高组]Probelm 2 连接多位数【2011百度实习生笔试题】

    /*====================================================================== [NOIp 1998 提高组]Probelm 2 连接 ...

  7. 阿里巴巴2013年实习生笔试题B

    阿里巴巴集团2013实习生招聘技术类笔试题(B) 一.单向选择题 1.在常用的网络协议中,___B__是面向连接的.有重传功能的协议. A. IP B. TCP C. UDP D. DXP 2.500 ...

  8. 【转】c++笔试题

    原文:http://blog.csdn.net/dongfengsun/article/details/1541926 ①链表反转 单向链表的反转是一个经常被问到的一个面试题,也是一个非常基础的问题. ...

  9. 非常全面的java基础笔试题

    下面是java基础笔试题,当时我去笔试,做了1个小时(80道选择题,后面的简答题就没时间做了),结果很吓人,太挫了,最后被面试官忽悠去培训去了,呵呵.我偷偷把面试题弄了下来,用来学习吧,也希望能对你们 ...

随机推荐

  1. node.js环境下写的vue项目

    github地址:https://github.com/anxizhihai/JournalismProject.git

  2. 如何使用tomcat,使用域名直接访问javaweb项目首页

    准备工作: 1:一台虚拟机 2:配置好jdk,将tomcat上传到服务器并解压 3:将项目上传到tomcat的webaap目录下 4:配置tomcat的conf目录下的server.xml文件 确保8 ...

  3. throws、throw和try catch

    在学习代理模式的时候,编写动态生成代理类.java文件时,用try{}catch(){}捕获异常发现catch(Exception e)报错,得换成catch(Throwable e),然后又查了查两 ...

  4. 关于2018年第九届蓝桥杯[C++省赛B组][第四题:测试次数]的疑问

    题目来源:https://blog.csdn.net/qq_34202873/article/details/79784548 #标题:测试次数#x星球的居民脾气不太好,但好在他们生气的时候唯一的异常 ...

  5. C++练习 | 运算符重载练习

    #include <iostream> #include <cmath> #include <cstring> #include <iomanip> u ...

  6. Qt绘制动态曲线

    首先*.pro文件中加一句 QT += charts 然后 mainwindow.cpp文件如下: #include "mainwindow.h" #include "u ...

  7. MongoDB 简单上手

    MongoDB 是什么 MongoDB 是一种非关系型数据库(NoSQL). MongoDB中的术语解释 文档(document):形如 { name: "sue", <-- ...

  8. JanusGraph 图数据库安装小记 ——以 JanusGraph 0.3.0 为例

    由于近期项目中有使用图数据的需求,经过对比,我们选择尝试使用 JanusGraph.本篇小记记录了我们安装 JanusGraph 以及需要一起集成的 Cassandra + Elasticsearch ...

  9. UVA 514 - Rails ( 铁轨)

    from my CSDN: https://blog.csdn.net/su_cicada/article/details/86939523 例题6-2 铁轨(Rails, ACM/ICPC CERC ...

  10. 20155209 2016-2017-2《Java程序设计》课程总结

    20155209 2016-2017-2<Java程序设计>课程总结 预备作业1 刚刚接触Markdown的写法,刚刚接触博客,简单了解娄老师的教学方式. 预备作业2 怎么将学习java像 ...