iOS中取数组的最大值、最小值,下标,总和,平均值


标签: ios数组nsarrayindex

代码不多,其中采用了三目运算法对数据进行对比,如果有需要的话,自己把这个方法拆分,最小值不拆分有误差

这里是需要下标,直接上代码:

  1. </pre><p class="p1"><pre name="code" class="objc">    NSArray * ary = @[@"45",@"876",@"234",@"98",@"23",@"63",@"34",@"4"];  
  2.     int max_number = 0;          //最大值  
  3.     int max_index = 0;           //最大值的下标  
  4.       
  5.     int min_number = INFINITY;   //最小值  
  6.     int min_index = 0;           //最小值下标  
  7.       
  8.     int all = 0;                 //总和  
  9.     float mid = 0;                //总和平均值  
  10.       
  11.     for (int i=0; i<ary.count; i++)  
  12.     {  
  13.         //取最大值和最大值的对应下标  
  14.         int a = [ary[i] intValue];  
  15.         if (a>max_number)  
  16.         {  
  17.             max_index=i;  
  18.         }  
  19.         max_number = a>max_number?a:max_number;  
  20.           
  21.         //取最小值和最小值对应的下标  
  22.         int b = [ary[i] intValue];  
  23.         if (b<min_number)  
  24.         {  
  25.             min_index = i;  
  26.         }  
  27.         min_number = b>min_number?min_number:b;  
  28.           
  29.         //去除数组中所有的值  
  30.         int c = [ary[i] intValue];  
  31.         all = all+c;  
  32.           
  33.         //求平均数  
  34.         mid = all/ary.count;  
  35.     }  
  36.     NSLog(@"输出最大值在数组中的下标---->>>%d",max_index);  
  37.     NSLog(@"输出数组中最大值---->>>>%d",max_number);  
  38.       
  39.     NSLog(@"输出最小值在数组中的下标---->>>%d",min_index);  
  40.     NSLog(@"输出数组中最小值---->>>>%d",min_number);  
  41.       
  42.     NSLog(@"输出所有的元素的和---->>>%d",all);  
  43.       
  44.     NSLog(@"输出数组内所有数据的平均数--->>>%.2f",mid);    // 考虑到不一定是刚好可以整除,所以取保留小数点后两位  
  45.       
</pre><p class="p1"><pre name="code" class="objc">    NSArray * ary = @[@"45",@"876",@"234",@"98",@"23",@"63",@"34",@"4"];
    int max_number = 0;          //最大值
    int max_index = 0;           //最大值的下标
    
    int min_number = INFINITY;   //最小值
    int min_index = 0;           //最小值下标
    
    int all = 0;                 //总和
    float mid = 0;                //总和平均值
    
    for (int i=0; i<ary.count; i++)
    {
        //取最大值和最大值的对应下标
        int a = [ary[i] intValue];
        if (a>max_number)
        {
            max_index=i;
        }
        max_number = a>max_number?a:max_number;
        
        //取最小值和最小值对应的下标
        int b = [ary[i] intValue];
        if (b<min_number)
        {
            min_index = i;
        }
        min_number = b>min_number?min_number:b;
        
        //去除数组中所有的值
        int c = [ary[i] intValue];
        all = all+c;
        
        //求平均数
        mid = all/ary.count;
    }
    NSLog(@"输出最大值在数组中的下标---->>>%d",max_index);
    NSLog(@"输出数组中最大值---->>>>%d",max_number);
    
    NSLog(@"输出最小值在数组中的下标---->>>%d",min_index);
    NSLog(@"输出数组中最小值---->>>>%d",min_number);
    
    NSLog(@"输出所有的元素的和---->>>%d",all);
    
    NSLog(@"输出数组内所有数据的平均数--->>>%.2f",mid);    // 考虑到不一定是刚好可以整除,所以取保留小数点后两位
    


如果不需要下标的话可以采用这一段代码

上代码喽:

  1. CGFloat all_value = [[ary valueForKeyPath:@"@sum.floatValue"] floatValue];  //总和  
  2. CGFloat mid_value = [[ary valueForKeyPath:@"@avg.floatValue"] floatValue];  //平均数  
  3. CGFloat max_value = [[ary valueForKeyPath:@"@max.floatValue"] floatValue];  //最大值  
  4. CGFloat min_value = [[ary valueForKeyPath:@"@min.floatValue"] floatValue];  //最小值  
  5.   
  6.   
  7. NSLog(@"总值--->>>%.2f\n平均值--->>>%.2f\n最大值---->>>>%.2f\n最小值---->>>%.2f",all_value,mid_value,max_value,min_value);  
    CGFloat all_value = [[ary valueForKeyPath:@"@sum.floatValue"] floatValue];  //总和
    CGFloat mid_value = [[ary valueForKeyPath:@"@avg.floatValue"] floatValue];  //平均数
    CGFloat max_value = [[ary valueForKeyPath:@"@max.floatValue"] floatValue];  //最大值
    CGFloat min_value = [[ary valueForKeyPath:@"@min.floatValue"] floatValue];  //最小值
    
    
    NSLog(@"总值--->>>%.2f\n平均值--->>>%.2f\n最大值---->>>>%.2f\n最小值---->>>%.2f",all_value,mid_value,max_value,min_value);
    


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值