Avatar billede mabeto Nybegynder
11. juli 2013 - 11:27 Der er 3 kommentarer

c++ functiion (SIMPELT)

Hej. Jeg har prøvet at lave et lille spil hvor man skal gætte et tilfældigt tal! Man indtaster hvor mange forsøg man har og hvor sort /småt tallet kan være. Men programmet lukker der hvor jeg kalder funktionen "findtal".

Koden:

#include <iostream>
#include <cstdlib>
#include <ctime>
int findTal(int lilleTal, int stortTal);
using namespace std;
int main()
{
int antalForsøg;
int stortTal;
int lilleTal;
int antalForsøgBrugt;
int svaret;
int gaet;
svaret = 6;
antalForsøgBrugt = 0;
cout << "Indtast antal forsoeg \n";
cin >> antalForsøg;
cout << "\nIndtast det mindste tal det kan vaere\n";
cin >> lilleTal;
cout << "\nIndtast det stoerste tal det kan vaere\n";
cin >> stortTal;//Programmet virker hertil!
svaret = findTal(lilleTal, stortTal);  /*hvis jeg herunder    skriver cout << svaret så ser jeg det ikke og programmet lukker bare!*/
while(antalForsøgBrugt < antalForsøg)
    {
    {antalForsøgBrugt++
    cout << "indtast dit gaet!";
    cin >> gaet;}
    if (gaet < svaret)
    cout <<    "Dit gaet var under svaret!\n";
    if (gaet > svaret)
    cout << "Dit gæt var over svaret!\n";
    if (gaet == svaret)
    {cout << "dit gaet var rigtigt. Du har vundet!\n";
    break;}
    cout<<antalForsøgBrugt;
cin.get();
return 0;
    }

int findTal( int lilleTal, int stortTal)
{ int svaret;
srand(time(NULL));
svaret = rand() % stortTal + lilleTal;
return svaret;
}

Mvh Mads

Jeg bruger microsoft visual studio 2012.
Avatar billede segmose Nybegynder
13. juli 2013 - 11:54 #1
Prøv at bruge debuggeren for at se hvor det går galt.

Du har også en logik fejl i findTal, nemlig at den ikke returnere et tal fra lilleTal til StortTal men fra lilleTal til lilleTal+stortTal-1.
Avatar billede mabeto Nybegynder
13. juli 2013 - 18:12 #2
Der kommer netop ikke noget om fejlen... Og det med lilleTal kan jeg ikke rigtigt forstå??? Har før brugt lign. random generator hvor det virkede???

Mvh Mads
Avatar billede segmose Nybegynder
13. juli 2013 - 22:29 #3
Hvis lille tal er 5 og store tal er 10 så skulle tallet ligge fra 5 til 10.
Men rand() % stortTal giver 0 til 9 og lægger man så lilleTal til får man 5 til 14.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester