0

我正在尝试计算 2 个检索到的值,NSMutableArray但在运行时出现错误,指向算术计算的完成方式。

插入值的代码:

NSString *lastEx = @"None";
int lastScore = 0;
int tries = 0;
int total_score = 0;
int avg = 0;
int credit = 100;

[data addObject:lastEx];
[data addObject:[NSNumber numberWithInt:lastScore]];
[data addObject:[NSNumber numberWithInt:tries]];
[data addObject:[NSNumber numberWithInt:total_score]];
[data addObject:[NSNumber numberWithInt:avg]];
[data addObject:[NSNumber numberWithInt:credit]];

检索代码:

NSMutableArray *savedStock = [[NSMutableArray alloc] initWithContentsOfFile:path];

previousExercise.text = [savedStock objectAtIndex:0];

NSString *lastScoring = [NSString stringWithFormat:@"%d", [[savedStock objectAtIndex:1] intValue]];
previousScore.text = lastScoring;

NSString *totalTries = [NSString stringWithFormat:@"%d", [[savedStock objectAtIndex:2] intValue]];
attempts.text = totalTries;

NSString *average = [NSString stringWithFormat:@"%d", [[savedStock objectAtIndex:4] intValue]];
avgScore.text = average;

int totalScore = [[savedStock objectAtIndex:3] intValue];
int numberOfTries = [[savedStock objectAtIndex:2] intValue];
int avg;

avg = ((totalScore / numberOfTries) * 100);

NSString *rem_credit = [NSString stringWithFormat:@"%d", [[savedStock objectAtIndex:5] intValue]];
credits.text = rem_credit;

错误是=>的计算avg = ((totalScore / numberOfTries) * 100);

提前谢谢...

4

1 回答 1

4

tries为 0,因此也int numberOfTries = [[savedStock objectAtIndex:2] intValue];分配 0 numberOfTries,整数除以 0 会导致算术错误。

考虑:

avg = (numberOfTries == 0) ? 0 : ((totalScore / numberOfTries) * 100);
于 2012-05-07T01:27:12.337 回答