&安培;是的,我做了google"如何获得数组元素的总和"但是我想知道这里出了什么问题?如果我使用断点并在执行此行后看到" sum = sum +(int)A [i];" sum有一些模糊的值。
#import <Foundation/Foundation.h>
@interface MyClass : NSObject
@end
@implementation MyClass
@end
int solution(NSMutableArray *A)
{
int sum = 0;
for (int i = 0; i <A.count; i ++)
{
NSLog(@"A.count: %ld", A.count);
sum = sum + (int) A[i]; //A[i] has to return a value right?**strong text**
}
NSLog(@"The final sum is: %d", sum);
return sum;
}
int main(int argc, const char * argv[])
{
@autoreleasepool
{
NSMutableArray *A = [NSMutableArray arrayWithObjects: @"3",@"1",@"2",@"4",@"3", nil];
solution(A);
}
return 1;
}
答案 0 :(得分:3)
数组中的元素是NSString
个对象。您应该使用NSNumber
个对象:
NSMutableArray *A = [@[@3,@1,@2,@4,@3] mutableCopy];
此外,您无法将它们作为整数投射。要从int
获得NSNumber
,您需要致电[A[i] intValue]
。否则,您将对指针值求和。
sum = sum + [A[i] intValue];
答案 1 :(得分:1)
您正在添加字符串的值而不是整数值。 只需更换
sum = sum + (int) A[i];
以下
sum = sum + [A[i] integerValue];