C++把数字排序

C++把数字排序

描述

如题,详细如下:
输入不超过1024个数字,以特殊数字结尾,如(-999),把数字从小到大排序。

思路

目前,我们有两种思路可以写:

1是 在输入的时候,排序数组。
2是 先输入到数组,再排序。

其中,笔者认为第一种更简单,故此,本章采取第一种思路。

代码

#include <iostream>
using namespace std;//命名空间
int main()
{
    int num[1024] = {};//总数字数组
    int temp;//输入变量
    int count=0;//输入到数组位置
    int pos;//比数小的位置
    while (1) {
        pos = -999;//不存在的位置
        cin >> temp;//输入
        if (temp == -999) break;//如果输入-999就结束
        if (count != 0) {//如果当前不是第一位
            for (int i = count; i >=  0; i--) {
                if (temp <= num[i]) {//如果有比这个数小的
                    pos = i;
                }
            }
            if (pos == -999) {//当全部数组里面没有比这个数小的
                num[count] = temp;//移到最后一位
            }
            else {
                for (int x = count; x >= pos; x--) {//全部后移
                    num[x + 1] = num[x];
                }
                num[pos] = temp;//存储到后移的空位
            }
        }
        else {
            num[count] = temp;//第一位
        }
        count++;//位置+1
    }
   for (int i = 0; i < count; i++) {
       cout << num[i]<<" ";//依次输出
   }
   return 0;
}
End
原创文章 12 获赞 2 访问量 2288

猜你喜欢

转载自blog.csdn.net/qq_40832960/article/details/105527281