Beolvasás:
1. megadási mód:
Adott az elemek száma, majd ezt követi még annyi darab elem.
Feladat:
Adott n, majd n darab természetes szám.
Írjuk ki az összegüket!
Pl. bemenet:
5
10 13 5 7 9
kimenet:
44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| #include <iostream>
using namespace std;
int main()
{
int n;
cin >> n;
int osszeg = 0;
for (int i = 1; i <= n; i++) {
int szam;
cin >> szam;
osszeg = osszeg + szam;
}
cout << osszeg << endl;
return 0;
}
|
2. megadási mód:
Beolvasás valamilyen értékig (pl. álljunk meg -1-nél).
Feladat:
Ki kell számolni egy sorozat összegét, az elemek természetes számok és -1 jelzi a végét.
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 osszeg = 0;
bool megy = true;
while (megy) {
int szam;
cin >> szam;
if (szam == -1) {
megy = false;
}
else {
osszeg += szam;
}
}
cout << osszeg << endl;
return 0;
}
|
Más leírása ennek:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| #include <iostream>
using namespace std;
int main()
{
int osszeg = 0;
while (true) {
int szam;
cin >> szam;
if (szam == -1) {
break; // leáll a ciklus
}
else {
osszeg += szam;
}
}
cout << osszeg << endl;
return 0;
}
|
Más megközelítés:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <iostream>
using namespace std;
int main()
{
int osszeg = 0;
int szam;
cin >> szam;
while (szam != -1) {
osszeg += szam;
cin >> szam;
}
cout << osszeg << endl;
return 0;
}
|
Vagy:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include <iostream>
using namespace std;
int main()
{
int osszeg = 0;
int szam;
while (szam != -1) {
cin >> szam;
if (szam != -1)
osszeg = osszeg + szam;
}
cout << osszeg << endl;
return 0;
}
|
3. megadási mód
Addig olvasunk, míg el nem fogyik a bemenet.
A Ctrl-Z + Enter billentyűkombinációval lehet
jelezni a parancssornak, hogy vége a bemenetnek.
A beolvasás sikerét tesztelhetjük úgy, hogy
magát a beolvasást egy feltételbe rakjuk.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| #include <iostream>
using namespace std;
int main()
{
int szam, osszeg = 0;
while (cin >> szam) {
osszeg += szam;
}
cout << osszeg << endl;
return 0;
}
|
Feladat:
Mindhárom megadási módra írjunk egy-egy
programot, ami az elemek átlagát
írja ki!
Megoldás, ha a bemenet lezárásáig olvasunk be:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| #include <iostream>
using namespace std;
int main()
{
int szam, osszeg = 0, db = 0;
while (cin >> szam) {
osszeg += szam;
db++;
}
cout << (double)osszeg / db << endl;
return 0;
}
|
Feladatok:
1. https://www.pbinfo.ro/probleme/3992/count-c2
Adott n, majd n darab természetes szám. Számoljuk, meg, hogy hány kétjegyű van köztük!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int db=0;
int i=1;
while(i<=n){
i++;
int j;
cin>>j;
if(j>=10 && j<100)
db++;
}
cout << db << endl;
return 0;
}
|
2. https://www.pbinfo.ro/probleme/3985/suma-c2
Adott n, majd n darab természetes szám. Számoljuk ki a kétjegyűek összegét!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| #include <iostream>
using namespace std;
int main()
{
int n;
cin>>n;
int i=1;
int osszeg = 0;
while(i<=n){
i++;
int j;
cin>>j;
if(j>=10 && j<100)
osszeg = osszeg + j;
}
cout << osszeg << endl;
return 0;
}
|
3. https://www.pbinfo.ro/probleme/56/numarareperechi
Beolvasunk egész számokat a nulla megjelenéséig. Hányszor fordul elő, hogy két egymás melletti számnak
ugyanannyi az utolsó számjegye?
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
| #include <iostream>
using namespace std;
int main()
{
int db = 0, eusz=-1;
bool megy = true;
while (megy)
{
int szam;
cin >> szam;
if (szam == 0)
{
megy = false;
}
else
{
if (szam%10==eusz)
{
db++;
}
eusz=szam%10;
}
}
cout << db << endl;
return 0;
}
|