Một chúng ta, có vẻ như nlỗi đã cay cú, đăng câu hỏi này cùng nói rằng “thằng em” làm việc dãy trọ ko làm cho được bài xích này tuy thế lại giảm giá khuyến mãi được lương 8tr.quý khách hàng đã xem: Tìm số phệ thứ 2 trong mảng

https://vozforums.com/showthread.php?t=4971101

Nếu là các bạn, cùng với đề “viết 1 hàm kiếm tìm số có mức giá trị to thứ hai vào hàng số mang đến trước” thì các bạn sẽ giải như vậy nào?

Chụ ý là đề chỉ bao gồm viết 1 hàm tra cứu số có giá trị lớn thứ hai vào hàng số mang đến trước, không tồn tại trải nghiệm gì không giống.

Bạn đang xem: Tìm số lớn thứ 2 trong mảng

Đạt gồm 2 cách giải bài xích này. Một cách lúc còn tới trường và một phương pháp cơ hội sẽ đi làm việc. Đạt vẫn share sau.

Update, đã share tại chỗ này. Gạch đá như thế nào
*

*

Quý Khách vẫn "viết 1 hàm tìm số có giá trị to thứ hai trong hàng số mang đến trước" như vậy nào? dev chat Cách đó cũng ổn định, cơ mà tất cả biện pháp xuất sắc hơn, cũng ko khó mấy. Ví dụ nlỗi biện pháp của nguyenchiemminhvu Vì Đã tất cả câu vấn đáp của nguyenchiemminhvu cần Đạt chia sẻ nuốm này. khi mình đi làm, không có cthị trấn giới hạn đang bắt buộc làm trong một vòng lặp tốt nhị vòng lặp. Nhớ một điều là hw thì rẻ nhưng developer thì mắc. Nếu mình mắc thì cần trân quý của chính nó. Mình có giá thì người khác cũng vậy, tức là viết code làm thế nào nhằm bạn sau hiểu đọc với code theo nkhô giòn độc nhất vô nhị có thể. Lúc tới trường có ta có thể viết một hàm … 12 Likes nguyenhuuca (Nguyen Ca) May 12, năm nhâm thìn, 6:25am #2

Cái bài xích này phỏng vấn bên capegini bao gồm ntrằn :D. Và yêu cầu là 1 vòng for.

4 Likes nghia (cescnghia) May 12, năm 2016, 7:39am #3

1 vòng lập for, mình ko gồm xử lý trường phù hợp mảng chỉ tất cả một phần tử.

#include #include int function(int* tab, size_t length);int main(void)int tab = 1, -123, 80, 8, 2, 10, 9, 18, -1000, 200, 1, 4;int result = function(tab, 12);printf("Second max in this array : %d ", result); return 0;int function(int* tab, size_t length){int max1 = INT_MIN;int max2 = INT_MIN;int i;for(i = 0; i tab &và max2 4 Likes nguyenchiemminhvu (...) May 12, năm nhâm thìn, 7:41am #4 Nếu tất cả các thành phần đều bằng nhau với bởi luôn luôn INT_MIN thì sao

3 Likes ltd (Lê Trần Đạt) May 12, năm nhâm thìn, 7:43am #5

Đề ko thử dùng cần sử dụng 1 vòng lặp. Đạt chỉ dẫn câu hỏi nhằm giải quyết vấn đề thực tiễn ta gặp

viết 1 hàm tìm kiếm số có giá trị mập thứ 2 trong hàng số mang đến trước

Chứ ko giới thiệu bất kể một số lượng giới hạn nào.

3 Likes Itachi_Citus (Itabỏ ra Citus) May 12, năm 2016, 7:42am #6

ban sơ mình cũng nghĩ bài xích này như là các bạn, đọc lại trên voz mới thấy còn những lỗ hổng

*

:

Trường đúng theo length Trường đúng theo toàn bộ mảng bằng nhau không được cách xử lý.Thuật toán thù ko tổng quát cho trường thích hợp mảng chưa hẳn số nguyên (INT_MIN).Thuật toán không tổng thể đến ngôi trường phù hợp kiếm tìm số phệ sản phẩm công nghệ n.…

Nhìn vậy cơ mà phức hợp hơn tưởng tượng lúc đầu

*

3 Likes ktd (Kiều Dũng) May 12, năm nhâm thìn, 7:49am #7

Hi. Mình không xy ly truong hop có teo 1 phan tu nhe.

#include #include int main(){ //int arr_a = 19, 0, 5, 7, 13, 15, 11, 6, 4, 5, 102, 11, 15, 15, 16, 18, 19; int arr_a = 0,0,0,0,0,0,0; int max = arr_a; int max2 = 0; int i; //printf("%d", length_array); for (i = 0; i max) max = arr_a; max2 = arr_a; else if (max2 2 Likes nghia (cescnghia) May 12, năm nhâm thìn, 7:50am #8 Ok, đồng ý với bạn. Cần yêu cầu giải quyết tất cả những exception !

1 Like tdl May 12, năm nhâm thìn, 7:52am #9

Nếu mặt hàng sử dụng 1 lần thì

*

for (i = 0; i Smax_denhat)Smax_denhi = Smax_denhat;Smax_denhat = a;if (Smax_denhi == Smax_denhat)printf("Mang ni teo van de ma tui hong biet van de gi.");Bookmark topic lại nhằm dành riêng

2 Likes nguyenchiemminhvu (...) May 12, năm 2016, 8:06am #10

Đề ko từng trải cần sử dụng vòng lặp gì thì em sử dụng vòng lặp while vậy

Sắp xếp mảng giảm dần dần, xong rồi search thành phần không giống phần tử đầu tiên thứ nhất đầu tiên.Phải vậy không anh ltd

#include #include #include #include #include using namespace std;void find_max2(vector &v) v.size() == 1)cout b; );int i = 0, after_i = i + 1;while (i vec;int n;cout > n;for (int i = 0; i 4 Likes postace (Hai) May 12, năm 2016, 8:11am #11 Đề bài bác giới hạn max gì, phải em đang dùng bí quyết bình thường tốt nhất :

Tìm maxDuyệt mảng, kiếm tìm bộ phận Khủng thứ 2 2 Likes ltd (Lê Trần Đạt) May 12, năm nhâm thìn, 8:27am #12

Cách đó cũng ổn, mà lại tất cả giải pháp tốt hơn, cũng ko nặng nề mấy. lấy ví dụ nlỗi biện pháp của nguyenchiemminhvu

Vì Đã bao gồm câu trả lời của nguyenchiemminhvu buộc phải Đạt share núm này.

Lúc bản thân đi làm, không tồn tại chuyện số lượng giới hạn đã bắt buộc làm cho trong một vòng lặp tuyệt hai vòng lặp. Nhớ một điều là hw thì thấp cơ mà developer thì mắc.

Nếu mình mắc thì nên cần quý giá của nó. Mình có mức giá thì tín đồ khác cũng thế, có nghĩa là viết code làm thế nào để tín đồ sau đọc đọc cùng code theo nhanh khô tuyệt nhất có thể.

Lúc đi học bao gồm ta rất có thể viết một hàm cùng với không ít if else nhăng nhít. Giúp đến lịch trình chạy nhanh rộng vài phần triệu giây. Nhưng tạo nên developer không giống tốn vài ba phút hoặc 1 ngày hoặc vài ba ngày chỉ để debug. Vậy tất cả đáng không?

Solution cơ hội Đạt đến lớp sẽ là một vòng lặp với khá nhiều if else, ở đầu cuối chạy được. Nhưng cực kỳ khó hiểu và nặng nề debug.

Solution dịp Đạt đi làm đã là xem test ngôn ngữ có hỗ trợ hàm sort ko, do dụ như C++ STL hỗ trợ std::sort. Hoặc C cung cấp qsort. Hãy sử dụng nó, những hàm này là các hàm tối ưu xuất sắc rộng hàm bản thân trường đoản cú viết nhiều. Đừng reinvent the wheel.

Xem thêm: Cách Đăng Nhập 2 Nick Facebook Trên 1 Máy Tính, Đăng Nhập 2 Tài Khoản Facebook Trên Máy Tính

Các bước tiến hành nhỏng sau:

Sắp sếp sút dần mảng đang chohàm sort của thỏng viện đang đã cho ra công dụng tối ưu nhất rất có thể trong lúc ta tốn 1 phút nhằm code cái code này.chất vấn từ một cho tới n của mảng, giả dụ thấy số nhỏ tuổi rộng mang thì đó chính là số max đồ vật 2

Ưu điểm:

Code nkhô cứng, hàm sort tối ưu, logic đơn giản dễ dàng dễ debug.

Nhược điểm

Có thể chậm trễ hơn chương trình if else tá lả vài ba phần triệu giây

Code C

#include int get_second_max(int * array, int len); int main() int array = 1,2,9,9,9,3,4,5,7,0; printf("get_second_max: %d ", get_second_max(array, 10)); int cmp_int (const void * a, const void * b) return ( *(int*)b - *(int*)a ); int get_second_max(int * array, int size) int max; int second_max; int i; qsort (array, form size, sizeof (int), cmp_int); max = second_max = array; for(i = 1; i array ) second_max = array; break; return second_max;Code ++ rất có thể xem bài xích của Vũ:


Quý Khách sẽ "viết 1 hàm tìm kiếm số có mức giá trị phệ thứ hai vào dãy số mang đến trước" như thế nào? dev chat Đề ko trải nghiệm dùng vòng lặp gì thì em sử dụng vòng lặp while vậy
Sắp xếp mảng bớt dần, dứt rồi search bộ phận khác phần tử trước tiên đầu tiên thứ nhất. Phải vậy không anh ltd
#include #include #include #include #include using namespace std;void find_max2(vector &v){if (v.empty() || v.size() == 1){cout 7 Likes