2010-12-10 98 views
11

tôi có ba nguyêntối đa (cao nhất) và tối thiểu giá trị (thấp nhất) của ba số nguyên

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

Tôi muốn xác định cao nhất là gì và đó là giá trị thấp nhất sử dụng Objective-C

Tôi không chắc chắn cách nào để đi ... NSArray, int mảng hoặc cái gì khác. Tôi biết tôi chỉ có thể tiếp tục so sánh các giá trị, nhưng tôi đang tìm kiếm một cách tiếp cận tổng quát hơn và/hoặc tổng quát hơn.

Cảm ơn bạn!

+1

giữ đơn giản, chỉ cần so sánh. – khachik

+0

Tôi muốn, nhưng vòng lặp hiển thị bên dưới đơn giản hơn nhiều so với việc phát minh ra thuật toán của riêng tôi, tôi nghĩ rằng – TrekOnTV2017

Trả lời

25

Tốt để lưu các số đó trong một mảng. Chỉ đơn giản là mảng C là đủ tốt và trong Objective-C tốt nhất cho hiệu suất. Để tìm tối thiểu bạn có thể sử dụng chức năng này. Tương tự cho tối đa.

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

Nếu đó chỉ là ba số bạn có thể thực hiện việc so sánh thủ công để có hiệu suất tốt nhất. Có một macro MIN() và MAX() trong Cocoa trong Foundation/NSObjCRuntime.h. Đối với số tiền tối đa, chỉ cần thực hiện:

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

Điều này có thể được chia nhỏ thành nhiều con số hơn và có thể nhanh hơn phương pháp tiếp cận đầu tiên sử dụng vòng lặp.

+0

cảm ơn bạn. vòng lặp đó chỉ cho tôi cách hoàn thành mục tiêu của mình. – TrekOnTV2017

+3

MIN() và MAX() là bạn của bạn. – slycrel

0

Thật không may là không có cách nào ngắn gọn và thanh lịch cũng không phải là một cách tổng quát cho điều đó trong ca cao.

Mảng đồng bằng C + vòng lặp tùy chỉnh sẽ là tốt nhất. Với một NSArray bạn sẽ phải quấn các số nguyên trong NSNumbers mà không nhận được bất kỳ lợi ích nào từ đó.

+0

cảm ơn bạn. một mảng c đơn giản và một vòng lặp tùy chỉnh thực sự hoạt động tốt. – TrekOnTV2017

Các vấn đề liên quan