2010-12-10 4 views
11

У меня есть три целых числамаксимум (высокий) и минимальным (низкое) значение из трех целых чисел

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

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

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

Спасибо!

+1

Держите его простым, просто сравните. – khachik

+0

Я бы, но цикл, показанный ниже, намного проще, чем изобретать мой собственный алгоритм. Думаю, – TrekOnTV2017

ответ

25

Хорошо хранить эти числа в массиве. Просто простой массив 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() в Foundation/NSObjCRuntime.h. Для максимума, просто сделать:

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

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

+0

спасибо. этот цикл показал мне, как выполнить мою цель. – TrekOnTV2017

+3

MIN() и MAX() - ваши друзья. – slycrel

0

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

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

+0

спасибо. простой массив c и пользовательский цикл действительно работают просто отлично. – TrekOnTV2017

Смежные вопросы