Sum 正在返回一些模糊的值。我想要做的就是获取可变数组中的元素总和
Sum is returning some vague values. All I want to do is get Sum of Elements in my Mutable Array
& 是的,我做了 google "How to get sum of array elements" 但我想知道这里出了什么问题?如果我使用断点并在执行此行后看到 "sum = sum + (int) A[i];" 总和有一些模糊的值。
#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;
}
您正在添加字符串值而不是整数值。
只需替换
sum = sum + (int) A[i];
与以下
sum = sum + [A[i] integerValue];
数组中的元素是 NSString
个对象。您应该使用 NSNumber
个对象:
NSMutableArray *A = [@[@3,@1,@2,@4,@3] mutableCopy];
此外,您不能只将它们转换为整数。要从 NSNumber
获得 int
,您需要调用 call [A[i] intValue]
。否则,您将对 pointer 值求和。
sum = sum + [A[i] intValue];
& 是的,我做了 google "How to get sum of array elements" 但我想知道这里出了什么问题?如果我使用断点并在执行此行后看到 "sum = sum + (int) A[i];" 总和有一些模糊的值。
#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;
}
您正在添加字符串值而不是整数值。 只需替换
sum = sum + (int) A[i];
与以下
sum = sum + [A[i] integerValue];
数组中的元素是 NSString
个对象。您应该使用 NSNumber
个对象:
NSMutableArray *A = [@[@3,@1,@2,@4,@3] mutableCopy];
此外,您不能只将它们转换为整数。要从 NSNumber
获得 int
,您需要调用 call [A[i] intValue]
。否则,您将对 pointer 值求和。
sum = sum + [A[i] intValue];