您的位置:首页 > 博客中心 > 互联网 >

求随机数,按后三位排序

时间:2022-04-21 19:57

  

   编写程序实现以下功能:
    //随机产生20个正整数存入数组a中,且每个数均在1000-9999之间(包含1000和9999)。对数组进行排序,要求按每个数的后三位的大小进 行升序排列,然后取出满足此条件的前10个数放入数组b中,如果后三位的数值相等,则按原先的数值进行降序排列。最后输出数组b的内容



 #import
int value(int x)
{
 //如何求出5609 的后三位数
    int y = x /1000;
    int c = x % (1000 *y);
    return c;

}
int value1(int x)
{
    int y = x /1000;
    return y;

}

int main(int argc, const char * argv[])
{
   /
    int a[20] = {0}, b[20] = {0};;//输出这二十个数
    for (int i = 0; i < 20; i++) {
        a[i] = arc4random()%(9999 - 1000 + 1) + 1000;
        printf("%d  ",a[i]);
       
    }
    printf("取出后三位的数组:\n");
    for (int i = 0; i < 20; i++) {
        b[i] = value(a[i]);
        printf("%d ",b[i]);
    }
    printf(" 排序后的数组:\n");
    for (int i = 0; i < 20 - 1; i++) {
        for (int j = 0; j < 20 - 1 - i; j++) {
            if (b[j] > b[ j +  1]) {
                int temp = b[j];
                b[j] = b[j + 1];
                b[j + 1] = temp;
            
            }
        }
    }
    int c[20] = {0};
    printf("\n输出排序后的:");
    for (int i = 0; i < 10; i++) {
        c[i]= b[i]+value1(a[i]) * 1000;
        printf(" %d",c[i]);
            
        }
    
    for (int i = 0; i < 20 - 1; i++) {
        for (int j = 0; j < 20 - 1 - i; j++) {
            if (c[j] == c[j + 1] && c[j] < c[j + 1]) {
                
                    int temp = c[j + 1];
                    c[j + 1] = c[j];
                    c[j] = temp;
                    printf("  %d",c[j]);
                
            }
        }
    }
    
    
    
    
    return 0;
}

本文出自 “” 博客,请务必保留此出处

求随机数,按后三位排序,布布扣,bubuko.com

本类排行

今日推荐

热门手游