Bài tập  /  Bài đang cần trả lời

Giải bài có thưởng!

Nhập vào số nguyên n và dãy số có n số hạng. Hãy in ra các số nằm trong khoảng số nhỏ nhất và lớn nhất

c++
Câu 34. Nhập vào số nguyên n và dãy số có n số hạng. Hãy in ra các số nằm trong khoảng số nhỏ nhất và lớn nhất.( [min+1;max-1] ) theo thứ tự của dãy
INPUT             OUTPUT
5
6 30 2 5 1       6 2 5
0 trả lời
Hỏi chi tiết
29
Tham khảo câu trả lời từ Trợ lý ảo Lazi
Dưới đây là một đoạn mã C++ để thực hiện yêu cầu của bạn. Chương trình này sẽ đọc số nguyên `n` và dãy số `n` số hạng, rồi in ra các số nằm trong khoảng `[min + 1; max - 1]`.

```cpp
#include
#include
#include

int main() {
int n;
std::cout << "Nhập vào số nguyên n: ";
std::cin >> n;

std::vector numbers(n);
std::cout << "Nhập vào dãy số có " << n << " số hạng: ";
for (int i = 0; i < n; ++i) {
std::cin >> numbers[i];
}

// Tìm số nhỏ nhất và số lớn nhất
int min_num = *std::min_element(numbers.begin(), numbers.end());
int max_num = *std::max_element(numbers.begin(), numbers.end());

// In ra các số nằm trong khoảng [min + 1; max - 1]
std::cout << "Các số nằm trong khoảng [" << min_num + 1 << "; " << max_num - 1 << "] là: ";
for (int num : numbers) {
if (num > min_num && num < max_num) {
std::cout << num << " ";
}
}
std::cout << std::endl;

return 0;
}
```

### Giải thích mã chương trình:

1. **Nhập dữ liệu**: Chương trình bắt đầu bằng cách đọc giá trị `n` và `dãy số` từ người dùng.

2. **Tìm min và max**: Sử dụng hàm `std::min_element` và `std::max_element` để tìm số nhỏ nhất (`min_num`) và số lớn nhất (`max_num`) trong dãy.

3. **In kết quả**: Chương trình tiếp tục kiểm tra từng số trong dãy và in ra các số nằm trong khoảng `[min + 1; max - 1]`.

### Ví dụ:

Nếu bạn nhập:
```
5
6 30 2 5 1
```

Chương trình sẽ in ra:
```
Các số nằm trong khoảng [2; 29] là: 6 5 2
```

Hy vọng đoạn mã này giúp ích cho bạn!

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm
Bài tập liên quan

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường

Học ngoại ngữ với Flashcard

×
Trợ lý ảo Trợ lý ảo
×
Gia sư Lazi Gia sư