代码不多,其中采用了三目运算法对数据进行对比,如果有需要的话,自己把这个方法拆分,最小值不拆分有误差
这里是需要下标,直接上代码:
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; imax_number) { max_index=i; } max_number = a>max_number?a:max_number; //取最小值和最小值对应的下标 int b = [ary[i] intValue]; if (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);
如果有需要可以直接复制粘贴到项目中自己运行一下,修改成自己需要的类型