5 つの int があり、どれが最大の値を持つかを見つけようとしています。これどうやってするの?
私は試した:
if (louis > harry , matt , bob , jack) {
name.text = @"Louis";
}
しかし、それは正しく機能しません。
5 つの int があり、どれが最大の値を持つかを見つけようとしています。これどうやってするの?
私は試した:
if (louis > harry , matt , bob , jack) {
name.text = @"Louis";
}
しかし、それは正しく機能しません。
配列を使用してください!整数を配列に入れます。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 ...
私は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;
}