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

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

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

</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);    // 考虑到不一定是刚好可以整除,所以取保留小数点后两位
    


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

上代码喽:

    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);
    


如果有需要可以直接复制粘贴到项目中自己运行一下,修改成自己需要的类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值