While – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

While – C / C++ – Fórum – Programujte.comWhile – C / C++ – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Hynek0
Duch
10. 4. 2006   #1
-
0
-

Dobrý den, potřebuji poradit, co mám zde špatně.



if (jmeno == neco && jmeno == neco)
cout << "nNopovoleny vstup! ";


Jsou předtím i proměné.

[i]// Frosty edit: Prosím, vkládejte kód do tagu code.[/i]

Nahlásit jako SPAM
IP: ...–
HyMi
Reklama
Reklama
Tom?? Bos0
Stálý člen
10. 4. 2006   #2
-
0
-

Mas zle uvedenu podmienku. Kazda samostatna logicka operacia by mala byt uvadzana v zatvorkach. Cize skus:



if ((jmeno == neco) && (jmeno == neco))
cout << "\nNopovoleny vstup! ";

a malo by to ist.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Hynek0
Duch
10. 4. 2006   #3
-
0
-

Nejde to...

Nahlásit jako SPAM
IP: ...–
HyMi
Tom?? Bos0
Stálý člen
10. 4. 2006   #4
-
0
-

Tak sem daj cely kod, alebo mi ho posli na mail, mozno mas chybu niekde inde.

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Hynek0
Duch
10. 4. 2006   #5
-
0
-



#include <iostream>
using namespace std;

int main()
{

cout << "nVase vaha v C++ ";

char jmeno[20];
cout << "nZadejte vase jmeno:";
cin.getline(jmeno, 20);
char pohlavy[20];
cout << "nZadejte vase Pohlavy:";
cin.getline(pohlavy, 20);
cout << "nZadej prosim tvuj vek: ";
int vek;
cin >> vek;
cout << "Zadej prosim tvoji vahu: ";
int vaha;
cin >> vaha;
cout << "Zadej prosim tvoji vysku: ";
int vyska;
cin >> vyska;
cout << "____________________________________________________";
if (( jmeno == neco) && (jmeno == neco1))
cout << "nNopovoleny vstup! ";

cout << "nUdaje pro " << jmeno << ".n";
cout << "nVas vek je: " << vek ;

if (vek > 105 )
cout << "nTo ti mam verit ye je ti vic jak 105 let?";
cout << "nVase vaha je: " << vaha ;
cout << "kg ";
if (vaha > 150 )
cout << "nMel by jsi zacit hubnout.";
if (vaha < 25 && vek < 6)
cout << "nNa tvuj vek je vse v poradku.";
if (vaha < 40 && vek > 6)
cout << "nTve udaje nejsou v poradku, mel by jsi pribrat.";
if (vaha > 95 && vek > 50)
cout << "nTve udaje nejsou v poradku, mel by jsi zhubnout.";
cout << "nVase vyska je: " << vyska ;
cout << "nVase pohlavy " << pohlavy << ".n";




cout << "nPokud se nevypise zadne hlaseni, tak je vse v poradku.";
cout << "nStisknutim enter, konec aplikace.";
cin.get();
cin.get();
return 0;
}


Nahlásit jako SPAM
IP: ...–
HyMi
Tom?? Bos0
Stálý člen
10. 4. 2006   #6
-
0
-

Premenne "neco" a "neco1" nemas deklarovane. To znamena ze ty v klauzule if porovnavas premennu jmeno s niecim co neexistuje.

Pred



if (( jmeno == neco) && (jmeno == neco1))
cout << "\nNopovoleny vstup! ";


daj


char neco[20] = "xxx", neco1[20] = "yyy";

Nahlásit jako SPAM
IP: ...–
- Tuk tuk tuk!
Kto tam?
- Rekurzia.
Ktoze???
- Tuk tuk tuk!
Matěj Pácha0
Super člen
10. 4. 2006   #7
-
0
-

Ta podm?nka "and" mi tro?ku nesed?. Kdy? porovn?v?? jednu prom?nnou s n?jakou referenc? (s t?m "neco" a "neco1"), nep??mo t?m ??k??, ?e se prom?nn? m??e v ur?it?m p??pad? rovnat dv?ma mo?nostem. Logick? v?raz "and" toti? znamen? "a z?rove?". To znamen?, ?e v?raz
((jmeno==neco) && (jmeno==neco1))
odpov?d? v?razu:
obsah prom?nn? "jmeno" se rovn? obsahu prom?nn? "neco" a z?rove? obsahu prom?nn? "neco1".
Pokud je tedy v prom?nn? "neco" jin? obsah ne? v "neco1", v??e popsan? podm?nka nikdy nebude pravdiv?.
Podle m?ho skromn?ho ?sudku bys m?l nahradit v?raz "and" v?razem "or".
V?znam by to m?lo jedin? v p??pad?, ?e bych jako u?ivatel m?l zadat dv? shodn? slova do prom?nn?ch "neco" a neco1". V tom p??pad? ale nesed? tzv.?t?bn? kultura. M?n?c? se prom?nn? by toti? m?la st?t nalevo od srovn?vac?ho znam?nka, reference napravo.

Nahlásit jako SPAM
IP: ...–
Ajem tíčr, andrgraund tíčr!
Jura_0
Stálý člen
11. 4. 2006   #8
-
0
-

Retezce se zasadne v C porovnavaji funkcemi - konkretne strcmp, strncmp, strcoll. Nebo si je samozrejme muzete implementovat sam.

Cili podminka ma vypadat takto:



//test na rovnost
if(strcmp(jmeno, neco) == 0) // nebo if(!strcmp(jmeno, neco))
delej_neco(); // jsou shodne
else
// nejsou shodne
delej_neco_jineho();

A vysvetleni: funkce strcmp, vraci 0 pokud jsou retezce lexograficky stejne. JInak vraci bud kladne nebo yaporne cislo v souladu s porovnanim retezcu(vice treba [url=http://cplusplus.com/ref/]zde[/url]).

Nahlásit jako SPAM
IP: ...–
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žit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 91 hostů

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032016 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý