码迷,mamicode.com
首页 > 其他好文 > 详细

求随机数,按后三位排序

时间:2014-08-01 07:02:42      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:如何   return   import   编写程序   正整数   

  

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



 #import <Foundation/Foundation.h>
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;
}

本文出自 “久久归一” 博客,请务必保留此出处http://lulun426.blog.51cto.com/9197884/1533464

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

求随机数,按后三位排序

标签:如何   return   import   编写程序   正整数   

原文地址:http://lulun426.blog.51cto.com/9197884/1533464

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!