我有5个整数,我试图找出哪一个具有最大值。我怎么能这样做?
我试过了:
if (louis > harry , matt , bob , jack) {
name.text = @"Louis";
}
但它不能正常工作。
答案 0 :(得分:2)
使用数组!将整数放在一个数组中。如果您甚至不能使用单独的命名int
变量,而是使用int
数组。
int values[5] = {louis, harry, matt, bob, jack};
NSArray *names = @[@"Louis", @"Harry", @"Matt", @"Bob", @"Jack"];
int highestValue = -INFINITY;
NSString *highestName = nil;
for (int i = 0; i < 5; i++) {
if (values[i] > highestValue) {
highestValue = values[i];
highestName = names[i];
}
}
您的问题有很多解决方案。以上只是一般而且非常简单的。
它只是将整数放入数组并使用循环来查找最大的整数。然后它从另一个字符串数组中获取相应的名称。请注意,int
数组是纯C数组,而字符串数组是Objective-C样式NSArray
或NSString
对象。
顺便说一下,你的方法不起作用,因为它不是有效的C代码。如果你想这样做,就像我在下面那样做。但我真的建议使用数组,因为它更容易阅读维护。
if (louis > harry && louis > matt && louis > bob && louis > jack) {
name.text = @"Louis";
} else if (harry > louis && harry > matt && harry > bob && harry > jack) {
name.text = @"Harry";
} ... etc ...
答案 1 :(得分:1)
请注意,我对xcode没有任何经验,我只是在写我能找到的东西
据我所知,没有办法用任意数量的参数调用fmax
,所以你必须循环遍历变量,如下所示:
switch(fmax(louis,fmax(harry,fmax(matt,fmax(bob,jack)))) {
case louis: name.text = @"Louis"; break;
case harry: name.text = @"Harry"; break;
case matt : name.text = @"Matt"; break;
case bob : name.text = @"Bob"; break;
case jack : name.text = @"Jack"; break;
}