Trong bài học này, Lập trình không khó sẽ cùng bạn giải bài tập “Tìm max min của 3 số a b c nhập từ bàn phím“. Bài tập này cũng sẽ giúp bạn củng cố kiến thức về hàm trong c học ở bài học trước. Trong bài này chúng ta sẽ tìm cách giải bài tập này sử dụng hàm và hàm mà chúng ta sẽ sử dụng là loại hàm trả về giá trị. Chúng ta cùng đi vào bài học nhé.
Dưới đây là một thuật toán để tìm max min của 3 số. Tuy nhiên bài viết này không áp dụng giải thuật này:
Bài tập tìm max min của 3 số nhập từ bàn phím
- Viết hàm tìm max của 2 số có tên là `MinTwoNum()` để tìm max của 2 trong 3 số đó.
- Sử dụng hàm tìm max 2 số vừa viết để tìm max của kết quả ở bước 1 với số còn lại.
Lời giải tìm max min của 3 số
/* Bài tập: Tìm min, max trong 3 số nguyên a b c nhập từ bàn phím SỬ dụng hàm */ #include <stdio.h> // Hàm tìm min của 2 số int MinTwoNum(int a, int b){ return (a < b ? a : b); /* if (a < b) return a; else return b; */ } // Hàm tìm max của 2 số int MaxTwoNum(int a, int b){ return (a > b ? a : b); } // Hàm tìm min 3 số nguyên int MinThreeNum(int a, int b, int c){ return MinTwoNum(a, MinTwoNum(b, c)); } // Hàm tìm max 3 số int MaxThreeNum(int a, int b, int c){ int m = MaxTwoNum(a, b); int ans = MaxTwoNum(m, c); return ans; } /* a = 5, b = 7, c = 1 min = min(min(a, b), c) // Ctrl C => Ctrl V max = max(min(a, b), c) */ int main(){ int firstNum, secondNum, thirdNum; printf("nNhap so thu nhat: "); scanf("%d", &firstNum); printf("nNhap so thu hai: "); scanf("%d", &secondNum); printf("nNhap so thu ba: "); scanf("%d", &thirdNum); // printf("nMin = %d", MinThreeNum(firstNum, secondNum, thirdNum)); printf("nMax = %d", MaxThreeNum(firstNum, secondNum, thirdNum)); return 0; }
Kết quả chạy chương trình:
PS G:c_courcesday_28> .MinMaxThreeNum.exe Nhap so thu nhat: 3 Nhap so thu hai: 4 Nhap so thu ba: 5 Min = 3 Max = 5
Bên cạnh cách giải trên, bạn cũng có thể viết hàm tìm max trực tiếp của 3 số, đây cũng là thuật toán để tìm max trong mảng (dãy số) mà chúng ta thường áp dụng:
- Giả sử số đầu tiên là số lớn nhất
- Duyệt qua lần lượt từng số còn lại, nếu số đang duyệt lớn hơn max thì gán max bằng với số đang duyệt đó.
- Kết thúc duyệt bạn sẽ có được max.
int MaxOfThree(int a, int b, int c){ int max = a; if(b > max){ max = b; } if(c > max){ max = c; } return max; }
Cũng giải thuật này bạn hoàn toàn có thể áp dụng cho bài toán tìm min của 3 số.
Tham gia Forum Lập Trình Không Khó để trao đổi kiến thức về lập trình tại đây.
Để lại một bình luận