Gå til innhold

Gjette tilfeldig tall program, får ikke gjettet på ny


Anbefalte innlegg

Du skjønner hva programmet skal gjøre ved å lese det. Har prøvd å google meg fram til svar, men finner ikke ut av problemet. Det som skjer er at etter at jeg har gjettet, så printer programmet "My number is higher" antall ganger vekk fra tallet det er (tror jeg).

 

#include <stdio.h>

#include <stdLib.h>

 

int main()

{

int y; //declaring y

int x; //declaring x

int rand (void);

x = rand;

printf("Hello there. What number am I thinking on? \nEnter your guess here: ");

scanf( "%d" , &y );

for ( x = rand; y > x; x++) {

printf( "My number is lower than that \nEnter another number: " );

{continue;}

}

while ( y < x ) {

printf( "My number is higher than that \nEnter another number: " );

{continue;}

}

do { printf( "That's correct!" );

{break;}

return 0;

} while ( x == y );

return 0;

}

Endret av Crash
Lenke til kommentar
Videoannonse
Annonse

Kort svar: Your code makes no sense. Jeg skjønner ikke hva programmet skal gjøre ved å lese det, men det kan se ut som et guess-random-number-spill.

 

Det kan se ut som om du har hoppet over den delen av kapittelet som omhandler if, og at du tror main-funksjonen kjøres helt til personen finner riktig svar ( main() kjøres kun en gang )

#include <stdio.h>
#include <stdLib.h>

int main()
{
int y; //declaring y
int x; //declaring x
int rand (void);
x = rand;
printf("Hello there. What number am I thinking on? \nEnter your guess here: ");
scanf( "%d" , &y );

for ( x = rand; y > x; x++) {
	printf( "My number is lower than that \nEnter another number: " );
	{continue;}
}

while ( y < x ) {
	printf( "My number is higher than that \nEnter another number: " );
	{continue;}
}

do { 
	printf( "That's correct!" );
	{break;}
	return 0;
} while ( x == y );

return 0;
}

 

Langt svar: Kode som fungerer ( c++ )

#include <cstdlib> // rand
#include <iostream> // cout, cin

using namespace std;

int main() 
{ 
int random_int_1_til_10 = ( ( rand() % 10 ) + 1 );
int valg, forsok = 0;

do {
	forsok++; // nytt forsøk
	cout << "Hvilket nummer tenker jeg på? : ";
	cin >> valg;

	if (random_int_1_til_10 > valg) {
		cout << "Mitt tall er høyere enn det." << endl;
	} else {
	cout << "Mitt tall er lavere enn det." << endl;
	}

} while (valg != random_int_1_til_10);

cout << "Gratulerer, du klarte å komme fram til " 
	  << valg << " på " << forsok << " forsøk" << endl;

return 0;
}

Endret av Kagee
Lenke til kommentar
Langt svar: Kode som fungerer ( c++ )

#include <cstdlib> // rand
#include <iostream> // cout, cin

using namespace std;

int main() 
{ 
int random_int_1_til_10 = ( ( rand() % 10 ) + 1 );
int valg, forsok = 0;

do {
	forsok++; // nytt forsøk
	cout << "Hvilket nummer tenker jeg på? : ";
	cin >> valg;

	if (random_int_1_til_10 > valg) {
		cout << "Mitt tall er høyere enn det." << endl;
	} else {
	cout << "Mitt tall er lavere enn det." << endl;
	}

} while (valg != random_int_1_til_10);

cout << "Gratulerer, du klarte å komme fram til " 
	  << valg << " på " << forsok << " forsøk" << endl;

return 0;
}

 

I programmet her vil programmet skrive ut: "Mitt tall er lavere enn det" også når valget er riktig, men trådstarter kan jo se på if-tester og finne ut hvordan han unngår det problemet selv.

Endret av NevroMance
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...