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.

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

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.