Forum » Programiranje » [naloga][c++] problem
[naloga][c++] problem
ROK1a ::
Imam nek osnovni meni:
Igralec 1 vnesi svoje ime: rok
Igralec 2 vnesi scoje ime: macro
rok izberi znak za igro (x/o): x
nato mi izpise:
rok je izbral znak X. Xacro automaticno dobi znak O.
Zakaj mi pri imenu drugega igralca prvo črko(m) zamenja z znakom(X) prvega igralca?
KODA:
Igralec 1 vnesi svoje ime: rok
Igralec 2 vnesi scoje ime: macro
rok izberi znak za igro (x/o): x
nato mi izpise:
rok je izbral znak X. Xacro automaticno dobi znak O.
Zakaj mi pri imenu drugega igralca prvo črko(m) zamenja z znakom(X) prvega igralca?
KODA:
int main() { char krozec='O', krizec='X', ime1[30], ime2[30], znak1[1], znak2[1]; // osnovni menu cout << "Igralec 1 vnesi svoje ime: "; cin >> ime1; cout << "Igralec 2 vnesi svoje ime: "; cin >> ime2; znak: system("cls"); cout << ime1 << " izberi si znak za igro <x/o>: "; cin >> znak1; if (strcmp(znak1,"x") == 0 || strcmp(znak1,"X") == 0) { znak1[1] = krizec; znak2[1] = krozec; } else if (strcmp(znak1,"o") == 0 || strcmp(znak1,"O") == 0) { znak1[1] = krozec; znak2[1] = krizec; } else { goto znak; } cout << ime1 << " je izbral " << znak1 << ". " << ime2 << " automaticno dobi znak " << znak2 << endl; system("pause"); return 0; }
Quikee ::
char krozec='O', krizec='X', ime1[30], ime2[30], znak1[1], znak2[1];
Ni pametno deklarirat spremenljivk na tak način, daj vsako v svojo vrstico. Kaj je smisel znak1[1] - to je polje z enim elementom, kar je (skoraj) isto kot da napišeš le char znak1; V nadaljevanju se sklicuješ na znak1[1] samo v C++ se začne z 0 (offset), torej znak1[0], če že. To je možno, da tudi razlog za tak izpis.
Goto ? Raje uporabi while oz do.. while stavek.
Ni pametno deklarirat spremenljivk na tak način, daj vsako v svojo vrstico. Kaj je smisel znak1[1] - to je polje z enim elementom, kar je (skoraj) isto kot da napišeš le char znak1; V nadaljevanju se sklicuješ na znak1[1] samo v C++ se začne z 0 (offset), torej znak1[0], če že. To je možno, da tudi razlog za tak izpis.
Goto ? Raje uporabi while oz do.. while stavek.
ROK1a ::
PRVIČ: v primeru, da dam char znak1; brez [1] mi izpiše error v vrstici kjer uporabim:
if (strcmp(znak1,"x") == 0 || strcmp(znak1,"X") == 0)
DRUGIČ: če pa se sklicujem na znak1[0] in znak2[0]
mi vseeno pomeša znake.
if (strcmp(znak1,"x") == 0 || strcmp(znak1,"X") == 0)
DRUGIČ: če pa se sklicujem na znak1[0] in znak2[0]
mi vseeno pomeša znake.
Quikee ::
Potem pa deklariraj kot znak1[2] in se sklicuj na znak1[0]. Polje pa se prej postavi na 0. Polje 2 charov je potrebno zaradi "null-termination" znaka na koncu.
Lahko pa bi primerjal direkt znake z if (znak1 == krizec), če bi oba bila deklarirana kot char in ne polje char-ov.
Lahko pa bi primerjal direkt znake z if (znak1 == krizec), če bi oba bila deklarirana kot char in ne polje char-ov.
Zgodovina sprememb…
- spremenil: Quikee ()
Quikee ::
int main() { char krozec='O', krizec='X', ime1[30], ime2[30], znak1, znak2; // osnovni menu cout << "Igralec 1 vnesi svoje ime: "; cin >> ime1; cout << "Igralec 2 vnesi svoje ime: "; cin >> ime2; znak: cout << ime1 << " izberi si znak za igro <x/o>: "; cin >> znak1; if (znak1 == krizec) { znak1 = krizec; znak2 = krozec; } else { if (znak1 == krozec) { znak1 = krozec; znak2 = krizec; } else { goto znak; } } cout << ime1 << " je izbral " << znak1 << ". " << ime2 << " automaticno dobi znak " << znak2 << endl; return 0; }
OwcA ::
Če je to C++, čemu potem uporabljaš abotna polja char-ov namesto std::string?
Otroška radovednost - gonilo napredka.
DejaVu ::
to je vse dosti lazje naredit v Cju. ne rabis C++ za tako nalogo.
btw, uporabi lstrcmpi namesto strcmp, in ti ne bo treba pazit na case.
btw, uporabi lstrcmpi namesto strcmp, in ti ne bo treba pazit na case.
OwcA ::
Zakaj bi bilo to lažje narediti v C-ju? Ali karkoli drugega, ko smo že pri tem.
Otroška radovednost - gonilo napredka.
StajercSSS ::
Apj...apj...Jaz se zaj mantram z nekimi povprečji... hehe...
Voziš se v formuli, pred tabo je podmornica, za tabo pa vesoljska ladja.
Kako se rešiš iz te situacije?
Rečeš ciganu naj ustavi vrtiljak.
Kako se rešiš iz te situacije?
Rečeš ciganu naj ustavi vrtiljak.
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | pomoč matematika - kombinatorika!Oddelek: Šola | 1283 (947) | technolog |
» | KalkulatorOddelek: Programiranje | 1316 (1083) | lebdim |
» | [C#] Preprost računOddelek: Programiranje | 1169 (893) | darkkk |
» | [c] Enaki datotekiOddelek: Programiranje | 1033 (893) | Spura |
» | [C++] - Tolmačenje povedi in izvedba operacij nad števkamiOddelek: Programiranje | 3343 (2579) | jernejl |