Hướng dẫn giải của LIST04: Số lớn nhất và số nhỏ nhất
Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.
Hướng dẫn giải
Cho dãy ~n~ số nguyên, hãy in ra số lớn nhất và số nhỏ nhất trong dãy.
Cách làm
Lấy số đầu tiên làm giá trị tạm cho cả hai đáp số, sau đó duyệt các số còn lại và cập nhật khi gặp số lớn hơn hoặc nhỏ hơn.
- Bước 1: Đọc ~n~ và dãy ~a~.
- Bước 2: Gán ~lonnhat = a_0~ và ~nhonhat = a_0~.
- Bước 3: Với ~i~ từ 1 đến ~n-1~, cập nhật hai biến nếu cần.
- Bước 4: In ~lonnhat~ và ~nhonhat~.
Bẫy: không gán giá trị ban đầu bằng 0, vì dãy có thể toàn số âm.
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin >> n;
int a[1005];
for (int i = 0; i < n; i++) {
cin >> a[i];
}
// Lấy số đầu tiên làm tạm thời cho cả số lớn nhất và số nhỏ nhất
int lonnhat = a[0];
int nhonhat = a[0];
// So sánh với các số còn lại để cập nhật
for (int i = 1; i < n; i++) {
if (a[i] > lonnhat) {
lonnhat = a[i];
}
if (a[i] < nhonhat) {
nhonhat = a[i];
}
}
cout << lonnhat << " " << nhonhat << "\n";
return 0;
}
Bình luận