Forum huvudsida -> Programmering -> Hjälp!!! C++
Sidor: 1
nathler | 19:50 - 4:e Maj 2006 | Post #1 | |
Medlem Inlägg: 6 Skicka PM |
Hej jag använder Dev-C++. När jag kör det här programmet så kör programet om void del_1() efter den kört int del_1_1() eller int del_1_2(). Den fortsätter inte ner på int main(). Hur kommer det sig? #include <iostream> using std::cout; using std::cin; using std::string; ////////////////////////////////////////////////////////////////////// string deli_1; void del_1(); int del_1_1(); int del_1_2(); void del_2(); ////////////////////////////////////////////////////////////////////// int del_1_2() { cout << "Du flydde fegis!!!"; return 0; } int del_1_1() { cout << "Du d'o'da apan!!!"; return 0; } void del_1() { cout << "En apa anfaller dig!!! (skriv 1 f'o'r att anfalla och 0 f'o'r att fly!)"; cin >> deli_1; if (deli_1 == "1") { del_1_1(); // köra del_1_1() om du skriver 1 } else if (deli_1 == "0") { del_1_2(); // köra del_1_2() om du skriver 0 } else; { del_1(); // Jag vill kör om del_1() om svaret inte är 1 eller 0 } return; } void del_2() { cout << "Du klara spelet"; return; } int main() { del_1(); del_2(); system ("pause"); return 0; } ------------------------- Nothing on earth takes forever, but none of your deeds where in vain. |
Kekke | 20:50 - 4:e Maj 2006 | Post #2 | |
Medlem Inlägg: 4 Skicka PM |
Du har en väldigt massa fel där.. #include <iostream> using std::cout; using std::cin; using std::string; int deli_1; void del_1(); void del_1() { cout << "En apa anfaller dig!!! (skriv 1 fx94r att anfalla och 0 fx94r att fly!)n"; cin >> deli_1; if (deli_1 == 1) cout << "Du dx94da apan!!!n"; else if (deli_1 == 0) cout << "Du flydde fegis!!!n"; cout << "Du klarade spelet"; } int main() { del_1(); cin.get(); cin.get(); return 0; } Det där borde funka.. Försök skriva koden med mer mellanrum och renare så andra kan förstå din kod. ------------------------- Ingen signatur! Senast redigerad 20:53 - 4:e Maj 2006 |
Nissebosselasse | 20:57 - 4:e Maj 2006 | Post #3 | |
Medlem Inlägg: 490 Skicka PM |
Först: ta bort semikolonet vid else-satsen. I C/C++ räknas faktiskt semikolonet (;) som en fullständig, egen sats. Sen: main-funktionen anropas vid uppstarten av programmet. Den kommer alltså köras igång först av allt, oavsett vad du säger. Jag misstänker att du ser programkörningen strikt uppifrån och ner? Det gäller bara inuti en funktionskropp. ------------------------- http://pushingcows.se Gula Nallen |
nathler | 21:14 - 4:e Maj 2006 | Post #4 | |
Medlem Inlägg: 6 Skicka PM |
tack men problemet med din(kekke) verision är att den inte kör om del_1 om man svarar annat än 1 eller 0. jag vill gärna att den skall kört om del_1 om man svarar något annat än 1 eller 0. som den gör tack vare else { del_1; } och så skulle jag uppskata om ni kunde förklara vad som är fel på koden. Varför forstätter den inte på int main()? För den borde ju köra int main() när den utfört del_1 eller hur? ------------------------- Nothing on earth takes forever, but none of your deeds where in vain. |
Nissebosselasse | 21:24 - 4:e Maj 2006 | Post #5 | |
Medlem Inlägg: 490 Skicka PM |
Läste du igenom min post...? Jag kompilerade källkoden under Visual C++, och den funkade efter jag gjort #include <string> överst, samt tagit bort semikolonet (som jag nämnde). Källkoden blir således så här:
Frågan återstår då om du är införstådd med hur ett C++-program utförs? Att main anropas först när programmet körs igång? En annan sak: i else-satsen, där del_1 anropas, finns ett litet problem, nämligen rekursion. Funktionen anropar nämligen sig själv, och för varje anrop fylls minnet upp. Du borde göra om hela den funktionen till en loop istället. ------------------------- http://pushingcows.se Gula Nallen Senast redigerad 21:26 - 4:e Maj 2006 |
nathler | 21:51 - 4:e Maj 2006 | Post #6 | |
Medlem Inlägg: 6 Skicka PM |
Tack så mycket för hjälpen jag och min kompis har suttit jätte länge och undrat varför den loopa del_1 och så var d bara ett semicolon... man tack igen ------------------------- Nothing on earth takes forever, but none of your deeds where in vain. |
Sidor: 1
Forum huvudsida -> Programmering -> Hjälp!!! C++
Du får inte posta i den här tråden | Till toppen
Datum
2024-12-22 20:06
Vecka: 51
Besökare
Inloggade: 0
Gäster: 605
Medlemmar
Medlemmar: 53576
Forum
Senaste inlägget: HAHA MÄNNISKAN LEVER ÄN (13:45 - 18:e Januari 2019, av Hetzz)
Wiki
Senaste ändringen:
3D (rev: 1, tid: 09:40 - 13:e November 2015)
Chatt
#blinkenlights @ Libera.Chat
Gratis shellkonton för IRC, webbsidor mm.