Senyor de la guerra Skrevet 21. januar 2010 Del Skrevet 21. januar 2010 Da er mitt første program skrevet i C++ ferdig. Ett lite "gjett tallet spill". Så hvordan skal jeg nå gå frem, enten forbedring eller endring av koden? Bruker jeg mange unødvenige linjer/koder? Er noe feil, hva må rettes på? Finnes det en annen/bedre syntax? #include "stdafx.h" #include <iostream> #include <stdlib.h> #include <stdio.h> #include <time.h> using namespace std; int main() { srand ( time(NULL) ); int tall = rand() % 100; int gjett; bool flagg = true; int teller = 1; while (flagg) { cout << "Gjett tall: "; cin >> gjett; if (gjett == tall) { cout << "Riktig, tallet var "; cout << tall; cout << ", og du brukte "; cout << teller; cout << " forsok"; flagg = false; cin.get(); } else { if (gjett > tall) { cout << "Lavere enn "; cout << gjett; } else { cout << "Hoyere enn "; cout << gjett; } } cout << endl; cout << endl; teller += 1; } cin.get(); return 0; } Lenke til kommentar
MrEspen Skrevet 21. januar 2010 Del Skrevet 21. januar 2010 Nå er jeg ingen kløppær på c++ men merker meg følgende: if (gjett == tall) { cout << "Riktig, tallet var "; cout << tall; cout << ", og du brukte "; cout << teller; cout << " forsok"; flagg = false; cin.get(); } else { if (gjett > tall) { cout << "Lavere enn "; cout << gjett; } else { cout << "Hoyere enn "; cout << gjett; } } } kan skrives som: if (gjett == tall) { cout << "Riktig, tallet var "; cout << tall; cout << ", og du brukte "; cout << teller; cout << " forsok"; flagg = false; cin.get(); } else if (gjett > tall) { cout << "Lavere enn "; cout << gjett; } else { cout << "Hoyere enn "; cout << gjett; } } og istedetfor: teller += 1; er det vanlig å bruke: teller++; Du må også ha feilhåndtering i forbindelse med input fra brukeren, slik du har det nå får du problemer om brukeren skriver noe annet enn heltall.... Lenke til kommentar
Senyor de la guerra Skrevet 21. januar 2010 Forfatter Del Skrevet 21. januar 2010 Takker, ser feilene der ja og er enig i de forbedringene. Hva slags kode må jeg hive opp for å filsøke inputen? Blir det noe slik: if (gjett != int) return; Lenke til kommentar
Psy Skrevet 21. januar 2010 Del Skrevet 21. januar 2010 cout << "Riktig, tallet var "; cout << tall; cout << ", og du brukte "; cout << teller; burde kunne skrives cout << "Riktig, tallet var " << tall << ", og du brukte " << teller; Lenke til kommentar
Senyor de la guerra Skrevet 21. januar 2010 Forfatter Del Skrevet 21. januar 2010 cout << "Riktig, tallet var " << tall << ", og du brukte " << teller; Ja, klar over den også, synes det er bedre å ha det nedover og mer oversiktlig. Er i MatLAB modus innenfor programmering, har vansklig med å legge det fra meg Lenke til kommentar
Dead_Rabbit Skrevet 22. januar 2010 Del Skrevet 22. januar 2010 Er en del ting som kunne vært gjort bedre. Bra at du er interessert i å gjøre koden bedre! Har litt dårlig tid, men det som skriker høyest er: - Du bruker gamle header-filer (stdlib.h, etc. C-biblioteker (som f.eks. stdlib.h) heter i C++ cstdlib, altså så sløyfer vi .h, slik som du har gjort med iostream) - Programmering, dvs. kommentering, navn på variabler, etc. bør være på engelsk. Det er good practice. - Variabler bør ha beskrivende navn. flagg er f.eks. lite beskrivende, alle vet at en boolean er et flagg. - I C++ styrer man gjerne unna NULL, og bruker istedenfor "vanlig" 0. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå