C++! Switch-csel hogy lehet ezt megcsinálni?
2-14-ig kap számokat.
A lényeg , hogy, ha 1 és 11 közötti számokat írsz be, akkor kidobja ezeket a számokat, de 11-re J betűt, 12-re Q-t, 13 K-t és 14-re A-t. A neten csak angol leírást találtam ehhez. Köszi!!
Tekintettel arra, hogy nem programozóként akarsz élni és egyáltalán nem is érdekel a dolog, tessék, itt van egy lehetséges (és csúnya) megoldás rá:
switch (a beolvasott szám) {
case 1: //ez lényegtelen, mert a feladat szerint 1-et soha sem kap a program
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
std::cout << a szám;
break;
case 11: //mert a leírás szerint 11-nél mind a számot, mind a betűt ki kell írni
std::cout << a szám << "\nJ";
break;
case 12:
std::cout << "Q";
break;
case 13:
std::cout << "K";
break;
case 14:
std::cout << "A";
break; //elhagyható
}
Szívesen! Én köszönöm, hogy ingyen dolgozhattam másnak a szabadidőmben.
Hát ha neked ezt leírni munkának számít, apukám... :)
Egy kicsit rendezettebb változat, mert ennyit meg lehet tenni másnak.
if (szam>=2 && szam<=14) //elhagyható, ha 100%, hogy 2-14 között kap számot.
switch (szam)
{
case 11: std::cout<<szam<<'J'; break;
case 12: std::cout<<'Q'; break;
case 13: std::cout<<'K'; break;
case 14: std::cout<<'A'; break;
default: std::cout<<szam; break;
}
#2:
A default ebben a feladatban azért nem jó, mert az minden más számra vonatkozik, nem csak az 1-11 számokra. A feladat nem ezt írta. Nincs megadva, hogy mit kell csinálnia akkor, ha ennek ellenére valamilyen más számot kap.
#2-es által írt kódot támogatom én is. Vagy valamely ekvivalens átalakítását.
pl. ez ekvivalens.
void myFunction(int i) {
... if(i < 2 || 14 < i) return;
... if(i == 11) { std::cout << i << 'J'; return; }
... if(i == 12) { std::cout << 'Q'; return; }
... if(i == 13) { std::cout << 'K'; return; }
... if(i == 14) { std::cout << 'A'; return; }
... std::cout << i;
}
Ez is ekvivalens. Csak break helyett return van.
void myFunction(int i) {
... if(i < 2 || 14 < i) return;
... switch(i) {
... ... case 11:
... ... ... std::cout << i << 'J';
... ... ... return;
... ... case 11:
... ... ... std::cout << 'Q';
... ... ... return;
... ... case 11:
... ... ... std::cout << 'K';
... ... ... return;
... ... case 11:
... ... ... td::cout << 'A';
... ... ... return;
... }
... std::cout << i;
}
... ... case 11:
... ... ... std::cout << 'Q';
... ... ... return;
... ... case 11:
... ... ... std::cout << 'K';
... ... ... return;
ezeket copy-ztam, csak nem írtam át. Persze értelem szerűen az értékeknek megfelelően.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!