整数奇偶排序

来源:互联网 发布:java nio io 区别 编辑:程序博客网 时间:2024/05/21 17:09

问题描述
输入10个0~100之间的不同整数,彼此以空格分隔。从新排序以后输出(也按空格分隔),要求;
1.先输出其中的奇数,并按从大到小排列;
2.然后输出其中的偶数,并按从小到大排列。
输入
任意排序的10个整数(0~100),彼此以空格分隔
输出
按照要求排序后输出,由空格分隔
输入示例

10 9 8 7 6 5 4 3 2 1

输出示例

9 7 5 3 1 2 4 6 8 10

提示
这里写图片描述
写程序的过程:
按照由大到小,由粗到精,有抽象到具体的方法分析、编写程序。
程序的结构:
1.程序由若干个“模块”组成;
2.模块之内“高内聚”;
3.模块之间“低耦合”;
源码

#include <iostream>using namespace std;int main(){    //定义变量    //all为全部十个数;odd记录奇数、even记录偶数,odd、even至多10个    int all[10], odd[10], even[10];    //i, j为循环变量    int i = 0, j= 0;    //依次输入10个数至all,i为all的下标    for (i = 0; i < 10; i++)    {        cin >> all[i];    }    //numOdd,numEven分别记录奇数、偶数的个数    int numOdd = 0;    int numEven = 0;    //遍历数组all,如果当前all[i]为奇数则放入odd[numOdd],偶数放入even[numEven]    for (i = 0; i < 10; i++)    {        if(all[i]%2 != 0)//奇数        {            odd[numOdd] = all[i];            numOdd++;        }        else//偶数        {            even[numEven] = all[i];            numEven++;        }    }    //对odd选择排序    for (i = 0; i < numOdd-1; i++)    {        for(j = i; j < numOdd; j++)        {            if (odd[j] > odd[i])//tmp为临时变量            {                int tmp = odd[i];                odd[i] = odd[j];                odd[j] = tmp;            }        }    }    //对even选择排序    for (i = 0; i < numEven-1; i++)    {        for(j = i; j < numEven; j++)        {            if (even[j] < even[i])//tmp为临时变量            {                int tmp = even[i];                even[i] = even[j];                even[j] = tmp;            }        }    }    //输出奇数    for(i = 0; i < numOdd; i++)    {        cout << odd[i] << " ";    }    //输出偶数    for (i = 0; i < numEven; i++)    {        cout << even[i] << " ";    }    return 0;}
0 0
原创粉丝点击