

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
#include <bits/stdc++.h>
using namespace std;
int a[1000006];
int main() {
// Thêm freopen nếu cần
// freopen("MINMAXARRAY.INP", "r", stdin);
// freopen("MINMAXARRAY.OUT", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(NULL), cout.tie(NULL);
int n;
cin >> n;
for(int i = 0; i < n; i++) cin >> a[i];
int mx = *max_element(a, a + n);
int mn = *min_element(a, a + n);
int cnt_mx = 0, cnt_mn = 0;
for(int i = 0; i < n; i++) {
if(a[i] == mx) cnt_mx++;
if(a[i] == mn) cnt_mn++;
}
cout << mn << ' ' << cnt_mn << '\n';
cout << mx << ' ' << cnt_mx;
return 0;
}
Giải thích:
Hàm max_element trả về con trỏ của giá trị lớn nhất trong đoạn địa chỉ từ [a, a + n] (hoặc [a + 1, a + n + 1] nếu bạn dùng mảng bắt đầu từ 1) -> *max_element là giá trị tại vị trí đó là giá trị lớn nhất trong mảng.
Tương tự với min_element và *min_element
Khi đã có giá trị min, max ta duyệt lại mảng 1 lần nữa để đếm tần suất xuất hiện của 2 giá trị này bằng biến đếm cnt_mx và cnt_mn tương ứng tần suất xuất hiện của giá trị mx (max) và giá trị mn (min).
=> In ra theo đề bài yêu cầu
Lưu ý: Bỏ // nếu cần freopen
Mình xin 5 sao và hay nhất ạ!
Hãy giúp mọi người biết câu trả lời này thế nào?
#include <bits/stdc++.h>
using namespace std;
int main() {
int n;
cin>>n;
int a[1000000];
for (int i=0;i<n;i++) {
cin>>a[i];
}
int bk=a[0],td=a[0];
int bkg=0,tdrk=0;
for (int i=0;i<n;i++) {
if (a[i]<bk) {
bk=a[i];
}
if (a[i]>td) {
td=a[i];
}
}
for (int i=0;i<n;i++) {
if (a[i]==bk) {
bkg++;
}
if (a[i]==td) {
tdrk++;
}
}
cout<<bk<<" "<<bkg<<endl;
cout<<td<<" "<<tdrk<<endl;
return 0;
}
Hãy giúp mọi người biết câu trả lời này thế nào?
Bảng tin