Minimum- és maximumelem megkeresése
Feladat:
Adott n, majd n darab egész szám
(-1000 és 1000 közöttiek).
Írjuk ki, hogy melyik volt a legnagyobb
érték a sorozatban!
Pl. bemenet:
5
120 30 200 3 5
kimenet: 200
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
//int maximum = -1001;
int maximum = INT_MIN;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam > maximum) {
maximum = szam;
}
}
cout << maximum << endl;
return 0;
}
|
Vagy (ha az első elemet használjuk kezdőértéknek):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int maximum;
cin >> maximum;
for (int i = 2; i <= n; i++) {
int szam;
cin >> szam;
if (szam > maximum) {
maximum = szam;
}
}
cout << maximum << endl;
return 0;
}
|
További feladatok:
1. Keressük meg egy sorozat legkisebb elemét!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
//int minimum = 1001;
int minimum = INT_MAX;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam < minimum) {
minimum = szam;
}
}
cout << minimum << endl;
return 0;
}
|
2. Adott n és egy n elemű sorozat (int-ben
elférnek az elemek. Keressük a két legnagyobb
elemet.
Pl.
5
1 100 2 10 3
a ket legnagyobb: 100 10
Pl.
5
1 100 2 3 100
a ket legnagyobb: 100 100
Pl.
6
1 10 2 100 3 200
a ket legnagyobb: 200 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
int maximum = INT_MIN;
int masodik_max = INT_MIN;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam > maximum) {
masodik_max = maximum;
maximum = szam;
}
else if (szam > masodik_max) {
masodik_max = szam;
}
}
cout << maximum << " " << masodik_max << endl;
return 0;
}
|
3. Kövessük nyomon a fenti három bemenetre
az algoritmus futását!
Megoldás az első bemenetre (a többi HF):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
int maximum = INT_MIN;
int masodik_max = INT_MIN;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam > maximum) {
masodik_max = maximum;
maximum = szam;
}
else if (szam > masodik_max) {
masodik_max = szam;
}
}
cout << maximum << " " << masodik_max << endl;
return 0;
}
|
n | 5
-------------+----------------------------------------------------
maximum | INT_MIN 1 100 100 100
------------------------------------------------------------------
masodik_max | INT_MIN INT_MIN 1 2 10
------------------------------------------------------------------
i | 1 2 3 4 5 6
------------------------------------------------------------------
szam | 1 100 2 10 3
KIMENET:
100 10
4. Írjunk programot, ami meghatározza a három legkisebb elemet!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
| #include <iostream>
#include <climits>
using namespace std;
int main()
{
int n;
cin >> n;
int minimum = INT_MAX;
int masodik_min = INT_MAX;
int harmadik_min=INT_MAX;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
if (szam < minimum) {
harmadik_min = masodik_min;
masodik_min = minimum;
minimum = szam;
}
else if (szam < masodik_min) {
harmadik_min = masodik_min;
masodik_min = szam;
}
else if (szam < harmadik_min) {
harmadik_min = szam;
}
}
cout << minimum << " " << masodik_min <<" " << harmadik_min << endl;
return 0;
}
|
Kövessük nyomon ezt az algoritmust is valamilyen bemeneti sorozatra
(legalább 5 eleme legyen).
(HF)