Objective c NSArray的平均值和新NSArray中的存储值
我希望得到NSArray元素的平均值,并按以下方式将它们存储在新数组中Objective c NSArray的平均值和新NSArray中的存储值,objective-c,nsmutablearray,nsarray,average,Objective C,Nsmutablearray,Nsarray,Average,我希望得到NSArray元素的平均值,并按以下方式将它们存储在新数组中 NSArray* number; NSMutableArray* Average; [Average objectAtIndex:0]=[number objectAtIndex:0]; [Average objectAtIndex:1]=([number objectAtIndex:0] + [number objectAtIndex:1])/2; [Average objectAtIndex:2]=([number o
NSArray* number;
NSMutableArray* Average;
[Average objectAtIndex:0]=[number objectAtIndex:0];
[Average objectAtIndex:1]=([number objectAtIndex:0] + [number objectAtIndex:1])/2;
[Average objectAtIndex:2]=([number objectAtIndex:0] + [number objectAtIndex:1] + [number objectAtIndex:2])/3;
我想用2个for循环来做
for (int i =0; i<[number count]; i++){
for (int j=0; j<i; j++){
temp+=[number objectAtIndex:j];
}
[Average addObject: temp/(i+1)];
}
对于(int i=0;i您只需要一个循环:
NSArray *numbers = @[@(2.4), @(2.7), @(4.0)];
NSMutableArray *averages = [NSMutableArray array];
double total = 0.0;
for (int i = 0; i < [numbers count]; i++) {
total += [[numbers objectAtIndex:i] doubleValue];
[averages addObject:@(total / (i + 1))];
}
顺便说一句,与您的问题无关,但是如果您只是想平均numbers
数组中的所有数字,您可以使用:
显然,只有当您想平均数组中的所有数字时,这才有用,但在这些情况下,这是一种方便的速记方法。您只需要一个循环:
NSArray *numbers = @[@(2.4), @(2.7), @(4.0)];
NSMutableArray *averages = [NSMutableArray array];
double total = 0.0;
for (int i = 0; i < [numbers count]; i++) {
total += [[numbers objectAtIndex:i] doubleValue];
[averages addObject:@(total / (i + 1))];
}
顺便说一句,与您的问题无关,但是如果您只是想平均numbers
数组中的所有数字,您可以使用:
显然,只有当您想平均数组中的所有数字时,这才有用,但在这些情况下,这是一种方便的速记方法。KVO无疑是最简洁的方法;)KVO无疑是最简洁的方法;)
NSNumber *average = [numbers valueForKeyPath:@"@avg.self"];