2012-11-17 37 views
-1

我有5个整数,我试图找出哪一个具有最大的值。我怎样才能做到这一点?我怎样才能找到最大的整数?

我想:

if (louis > harry , matt , bob , jack) { 
    name.text = @"Louis"; 
} 

,但它不工作的权利。

+1

它们看上去不像我的整数 – Paparazzi

+0

你可能最好把数据和一个名称数组放在一个数组中。然后,当您找到具有最大值的数组项目的索引时,可以使用该索引查找名称。 –

回答

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; 
} 
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]; 
    } 
} 

有很多解决方案可以解决您的问题。以上只是一个一般而且非常简单的一个。

它只是把你的整数放入一个数组,并使用循环找到最大的一个。然后它从另一个字符串数组中获得相应的名称。请注意0​​数组是一个普通的C数组,而字符串数组是一个Objective-C样式NSArrayNSString对象。

顺便说一句,你的方法不起作用,因为它不是有效的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 ...