C / C ++文字列または数値配列の単純な並べ替え

C / C ++文字列または数値配列の単純な並べ替え

#include <stdio.h>
#include <algorithm>
#include <iostream>
using namespace std;
int main()
{
    
    
    int a[10] = {
    
     8,9,6,9,8,6,3,4,7,8 };
    char c[10] = "dcssajkaz";
    //数字从小到大排序
    sort(a, a + 10);
    //字母从小到大排序
    //字母利用这种方式排序,数组的第一个字符为空格
    //具体原因是因为字符串结尾一般会自动加终止符\0,在排序时会把这个也排序进去,但是\0比字母小,
    //所以会排在第一个,所以输出字符串会输出不出来,因此排序时可以改为sort(c,c+9),把\0不排进去
    //sort(c, c + 10);
    sort(c, c + 9);
    //数字从小到大输出
    for (int i = 0; i < 10; i++)
    {
    
    
        printf("%d ", a[i]);
    }
    printf("\n");
    //字母从小到大输出
    for (int i = 0; i < 10; i++)
    {
    
    
        printf("%d%c ", i,c[i]);
    }
    printf("\n");


    //greater<int>()可以暂时理解为更大的整数

    //数字从大到小排序
    sort(a, a + 10, greater<int>());
    //字母从大到小排序
    //\0比字符小,所以在纯字母情况下会排到最后,但是依然推荐排序时剔除\0
    sort(c, c + 9, greater<int>());

    for (int i = 0; i < 10; i++)
    {
    
    
        printf("%d ", a[i]);
    }
    printf("\n");
    //字母从大到小输出
    for (int i = 0; i < 10; i++)
    {
    
    
        printf("%d%c ", i, c[i]);
    }
    return 0;
}

おすすめ

転載: blog.csdn.net/qq_44575789/article/details/106662289