Подтвердить что ты не робот

Максимальное (максимальное) и минимальное (минимальное) значение трех целых чисел

У меня есть три целых числа

int myI1 = 33;
int myI2 = 44;
int myI3 = 22;

Я хотел бы определить, что является самым высоким и которое является самым низким значением, используя Objective-C

Я не уверен, куда идти... NSArray, int array или что-то еще. Я знаю, что могу просто сравнивать ценности, но я ищу более элегантный и/или более обобщенный подход.

Спасибо!

4b9b3361

Ответ 1

Хорошо хранить эти числа в массиве. Просто простой массив C достаточно хорош и в Objective-C лучше всего подходит для производительности. Чтобы найти минимум, вы можете использовать эту функцию. Аналогично для максимума.

int find_min(int numbers[], int N){
    int min = numbers[0];
    for(int i=1;i<N;i++)
        if(min>numbers[i])min=numbers[i];

    return min;
}

Если это всего лишь три номера, вы можете выполнить сравнения вручную для лучшей производительности. Существует макрос MIN() и MAX() в Cocoa в Foundation/NSObjCRuntime.h. Для максимума просто выполните:

int m = MAX(myI1, MAX(myI2, myI3));

Это может быть увеличено до большего числа чисел и может быть быстрее, чем первый подход с использованием цикла.

Ответ 2

К сожалению, нет короткого и изящного и не обобщенного способа для этого в Cocoa.

Plain C Array + custom loop будет лучшим. С NSArray вам придется обернуть целые числа в NSNumbers, не получая от этого никакой пользы.