题目:字符排序

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

例:

输入:

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. Notes 20180310 : String第二讲_String的声明与创建

    1  字符串的声明与创建 学习String的第一步就是创建(声明)字符串,我们在这里之所以分为创建和声明(其实是一个意思,都是创建字符串,但两者却有本质的区别)是因为String是一个很特殊的类,它的 ...

  2. chrome浏览器页面获取绑定返回顶部动画事件插件

    在chrome浏览器下页面加载: var top = $("body").scrollTop()  ; console.log(top)                      ...

  3. 接口测试jemeter使用

    使用jemeter5时要先添加环境变量,需要有JDK1.8及以上版本支持.这里主要对接口测试做一些说明. 以上就是常见的设置问题.在window上我们通常是不需要改动配置文件的,如果要在生产上执行测试 ...

  4. ruby Rspec+jenkins+allure持续集成

    1.Allure2使用说明 2.ruby下载allure的gem gem install allure-rspec 3.修改源码 C:\Ruby23-x64\lib\ruby\gems\2.3.0\g ...

  5. Go语言中其他数据与字符串类型的转换

    1 概述 Go语言是强类型语言,因此总会需要将字符串转成需要的类型.比如整型和字符串转换,字符串和布尔型的转换等.本文就介绍如何完成这些转换,以下是Go语言关于字符串转换的整理说明,主要是与切片类型的 ...

  6. Matlab_GUI

    1.GUI中控件的属性 BackgroundColor 控件的背景 FontSize  控件字体的大小

  7. 20155203 2016-2017-3 《Java程序设计》第三周学习总结

    20155203 2016-2017-3 <Java程序设计>第三周学习总结 教材知识要点总结 第四章 文档主文档名必须与公开类名称相同.一个原始码中可以定义多个类,但是只能有一个公开类. ...

  8. 20155220 2016-2017-2《java程序设计》第三周学习总结

    教材学习内容总结 1.注意java与c语言的区别,在java中,数组是一个对象. 2.了解java.util.Scanner和java.math.BigDecimal这两个标准类 3.System.a ...

  9. css首行缩进2个字符

    css设置: p{ text-indent:2em; }

  10. PostgreSQL参数学习:vacuum_defer_clean_age

    官方文档: http://www.postgresql.org/docs/9.3/static/runtime-config-replication.html 为了防止slave端读取数据时,因为读到 ...