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.       


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

上代码喽:

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


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

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

  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.       


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

上代码喽:

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


猜你喜欢

转载自blog.csdn.net/freetourw/article/details/71480650
今日推荐