Zdravým
Následující kód:
#include <iostream>
using namespace std;
int main (void)
{
int cislo;
cout << "Prosim, zadejte cislo: ";
cin >> cislo;
cout << "Vami zadane cislo " <<
(cislo % 2 == 0) ? "je sude.\n" : "Cislo je liche.\n" ;
system ("pause");
return 0;
}
mi místo vypsání jednotlivých literálů "je sude.\n" nebo "Cislo je liche.\n", pokud platí či neplatí podmínka, vypíše dvě binární hodnoty 1 a 0. Nevíte čím to?
Fórum › C / C++
Problém s ternárním operátorem
#include <iostream>
using namespace std;
int main (void)
{
int cislo;
cout << "Prosim, zadejte cislo: ";
cin >> cislo;
cout << "Vami zadane cislo ";
(cislo % 2 == 0) ? cout<<"je sude.\n" : cout<<" je liche.\n" ;
system ("pause");
return 0;
}
To je také řešení, ale nevysvětluje chybu, kterou udělal David10101. Protože operátor << má větší prioritu než ?:, vypíše se právě hodnota cislo % 2 == 0 - stačí tedy jen uzavřít celou ?: konstrukci do závorek:
cout << "Vami zadane cislo ";
((cislo % 2 == 0) ? cout<<"je sude.\n" : cout<<" je liche.\n") ;
možná hezčí: cout << "Vami zadane cislo je " <<
((cislo % 2 == 0) ? "sude" : "liche") << ".\n";
Máte samozřejmě pravdu, svým zápisem jsem ale chtěl zdůraznit samotnou syntaxi ternárního operátoru:
(podmínka) ? (výraz_pro_true): (výraz_pro_false)
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 62 hostů
Podobná vlákna
Vysvětlení vzorce s urnárním operátorem — založil nikola18
Problém v C — založil Robin
Problem — založil Ghosta
Moderátoři diskuze