A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

zhangzhen

中级黑马

  • 黑马币:

  • 帖子:

  • 精华:

c 语言
#import <Foundation/Foundation.h>
#define COUNT 5


/**
*  产生随机数
*
*  @param arr 数组
*  @param len 数组长度
*/
void getRandomNum(int arr[],int len,int range){
   
   
    //产生随机数
    for (int i = 0; i < len; i++) {
        
        //产生随机数
        arr[i] = arc4random()%range;
        
    }  //此刻 循环结束后  数组已经初始化完成
   
   
}


/**
*  遍历数组
*
*  @param arr 数组
*  @param len 数组长度
*/
void showArr(int arr[],int len){
   
    //打印数组
    for (int i = 0; i < len; i++) {
        
        printf("%d  ",arr[i]);
        
    }
   
    printf("\n");
   
}


/**
*  冒泡排序
*
*  @param arr 数组
*  @param len 数组长度
*/
void sortArr(int arr[],int len){
   
    //冒泡排序
   
    for (int i = 0; i < len - 1; i++) {
        
        for (int j = 0; j < len - 1 - i; j++) {
            
            
            //相邻两个元素比较
            if (arr[j] > arr[j+1]) {
               
                int temp = arr[j];
               
                arr[j] = arr[j+1];
               
                arr[j+1] = temp;
               
            }
            
            
            
        }
        
    }
   
}



int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        //创建数组
        int arr[COUNT];
        
        //生成随机数  保存到数组中
        getRandomNum(arr, COUNT, 10);
        
        
        //打印数组元素
        showArr(arr, COUNT);
      
        

        printf("-------使用排序-------\n");
        
        
        //进行排序
        sortArr(arr, COUNT);
        
        
        //打印数组元素
        showArr(arr, COUNT);
        
        
        
        
        
    }
    return 0;
}

OC面向对象
#import <Foundation/Foundation.h>
#import "NSMutableArray+randomNum.h"

int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        
        //创建一个可变的数组
        NSMutableArray *arrM = [NSMutableArray array];
        
        [arrM creatRandomNum:7 andRangeNum:100];
        
        NSLog(@"arrM = %@",arrM);
        
        
        printf("-------排序---------");

        //排序   block的参数  直接回车就会补全
        arrM = (NSMutableArray *)[arrM sortedArrayUsingComparator:^NSComparisonResult(id  _Nonnull obj1, id  _Nonnull obj2) {
            
            return [obj1 compare:obj2];
            
        }];    //   1.  中括号补全   2.  分号补全   3.  返回值补全
        
        
        /*  排序的
         - (NSArray *)sortedArrayUsingComparator:(NSComparator)cmptr;

         */
        NSLog(@"arrM = %@",arrM);
        
    }
    return 0;
}
#import <Foundation/Foundation.h>

@interface NSMutableArray (randomNum)

/**
*  生成随机数保存到数组中
*
*  @param count    随机数个数
*  @param rangeNum 随机数范围
*/
-(void)creatRandomNum:(int)count andRangeNum:(int)rangeNum;


@end
#import "NSMutableArray+randomNum.h"

@implementation NSMutableArray (randomNum)


-(void)creatRandomNum:(int)count andRangeNum:(int)rangeNum{
   
   
    for (int i = 0; i < count; i++) {
        
        //生成随机数
        
        // 基本数据类型 --->  oc对象 (NSNumber)
        [self addObject:@(arc4random()%rangeNum)];
        
    }
   
   
   
   
   
}

@end

1 个回复

倒序浏览
C实现这个简单还是OC实现这个简单
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马