C++ fundamentals through coding exercises
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

3.1 KiB

2 Funktiot suurin ja pienin

Tehtävä:

Alla oleva ohjelma kysyy käyttäjältä kolme kokonaislukua ja tulostaa syötetyistä luvuista suurimman ja pienimmän näytölle. Tehtävänäsi on kirjoittaa ohjelmasta puuttuvat funktiot (suurin() ja pienin()), jotka saavat parametreina käyttäjän syöttämät kokonaisluvut ja palauttavat nimensä mukaiset kokonaisluvut.

Täydennettävä ohjelma:

#include <iostream>
using namespace std;
int suurin(int eka, int toka, int kolmas);
int pienin(int eka, int toka, int kolmas);
int main()
{
int luku1, luku2, luku3, suurinLuku, pieninLuku;
cout << "Syötä ensimmäinen kokonaisluku:";
cin >> luku1;
cout << "Syötä toinen kokonaisluku:";
cin >> luku2;
cout << "Syötä kolmas kokonaisluku:";
cin >> luku3;
suurinLuku = suurin(luku1, luku2, luku3);
pieninLuku = pienin(luku1, luku2, luku3);
cout << "Syöttämistäsi luvuista suurin oli " << suurinLuku;
cout << " ja pienin " << pieninLuku << "." << endl;
} 

Huom! Sinun tulee siis kirjoittaa ainoastaan koodista puuttuvat funktiot.

Example output:

Syötä ensimmäinen kokonaisluku:99
Syötä toinen kokonaisluku:88
Syötä kolmas kokonaisluku:66
Syöttämistäsi luvuista suurin oli 99 ja pienin 66.

Vastaus:

/*
Alla oleva ohjelma kysyy käyttäjältä kolme kokonaislukua ja tulostaa syötetyistä luvuista
suurimman ja pienimmän näytölle. Tehtävänäsi on kirjoittaa ohjelmasta puuttuvat funktiot
(suurin() ja pienin()), jotka saavat parametreina käyttäjän syöttämät kokonaisluvut
ja palauttavat nimensä mukaiset kokonaisluvut.
Huom! Sinun tulee siis kirjoittaa ainoastaan koodista puuttuvat funktiot. Älä kopioi alla olevaa koodia palautuskenttään.
Example output:
Syötä ensimmäinen kokonaisluku:99
Syötä toinen kokonaisluku:88
Syötä kolmas kokonaisluku:66
Syöttämistäsi luvuista suurin oli 99 ja pienin 66.
*/
#include <iostream>
//** Pre-defined code in the assignment **//
using namespace std;
int suurin(int eka, int toka, int kolmas);
int pienin(int eka, int toka, int kolmas);
int main()
{
int luku1, luku2, luku3, suurinLuku, pieninLuku;
cout << "Syötä ensimmäinen kokonaisluku:";
cin >> luku1;
cout << "Syötä toinen kokonaisluku:";
cin >> luku2;
cout << "Syötä kolmas kokonaisluku:";
cin >> luku3;
suurinLuku = suurin(luku1, luku2, luku3);
pieninLuku = pienin(luku1, luku2, luku3);
cout << "Syöttämistäsi luvuista suurin oli " << suurinLuku;
cout << " ja pienin " << pieninLuku << "." << endl;
}
//** ---------- ---------- ---------- **//
/*
These functions contain almost duplicate code
Should be get rid of the duplication
*/
int suurin(int luku1, int luku2, int luku3) {
int i, luvut[3] = {luku1, luku2, luku3};
int sluku = luvut[0];
for (i=0; i<3; i++)
{
if(luvut[i] > sluku)
{
sluku = luvut[i];
}
}
return sluku;
}
int pienin(int luku1, int luku2, int luku3) {
int i, luvut[3] = {luku1, luku2, luku3};
int pluku = luvut[0];
for (i=0; i<3; i++)
{
if (luvut[i] < pluku)
{
pluku = luvut[i];
}
}
return pluku;
}