从用户输入中查找数组对象

时间:2014-04-19 19:58:12

标签: objective-c

我试图让它成为我的代码的用户输入与我的数组中的对象相对应,但我不知道如何做到这一点。

基本上,作业说对一个将对期末考试进行评分的程序,每个问题都有四个可能的答案之一(a,b,c,d),并且数组中的第一个答案应该对应于第一个问题。考试。该程序应该提示用户他们对考试的答案,并且应该与数组中的第一个正确答案进行比较,如果匹配,它会给他们分数。

问题是,我不能为我的生活弄清楚如何将用户输入与我的阵列进行比较,看看它们是否是正确的东西。

这是我到目前为止所拥有的!

我知道我很害怕,但我会尽我所能。非常感谢任何帮助。

 #import <Foundation/Foundation.h>
 int main (int argc, char * argv[])
 {
@autoreleasepool {
    NSArray *correctAnswers= [NSArray arrayWithObjects: @"a", @"b ", @"c", @"d",nil];

    int sum = 0;
    int anwser;
    {

    NSLog(@"Please input test anwsers starting with 1:");
    scanf("%i",&anwser);
    }
    if ([correctAnswers containsObject:@(anwser)])  {
        sum = +10;
    }else {
        NSLog(@"Well that's not quite right...");
}

NSLog(@"The final score is:%d",sum);




}

return 0;
}

1 个答案:

答案 0 :(得分:0)

@"a"等是NSString实例。

您需要使用NSString实例方法将它们与用户输入进行比较。您还可以使用NSArray

等集合进行快速枚举
for (NSString* ans in correctAnswers)
{
    if ([ans isEqualtoString:[NSString stringWithInt:anwser]]) sum+=10;
}

您也可以使用NSArray的filteredArrayUsingPredicate:来搜索数组。

但是你不能使用containsObject来比较字符串......它只是检查一个特定的NSObject实例。

您似乎也将int与char进行比较......但这超出了您的问题范围。