webForumDet fria alternativet

Skriver ut massa blabb

C/C++ur C/C++

4 svar · 222 visningar · startad av graybone

Medlem sedan feb. 20034 inlägg
Frågan#1

jaghar just börjat med c++ och håller på med mitt först spel.
jag håller på med ett sorts black jack och jag får ett problem när den ska kolla om man är tjock lr inte. iblnad så skriver den ut massa blabba och ibalnd funkar det som det ska, hjälp

#include <iostream.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
 
main ()
{

int k[11],km[11], i ,a;
int peng, sats, sum1, sum2 ;
char tk[1];
int m,d,p,r;

srand (time(NULL)); 

for (i=0; i < 11; i++) 
	{
	k[i] = (rand()%(10)) +1 ;   /////k1 - k11 får ett hemligttal
	}

for (i=0; i < 11; i++) 
	{
	km[i] = (rand()%(10)) +1 ;   /////km1 - km11 får ett hemligttal
	}

peng = 500;

	cout << "\n      #######     ########\n";  
	cout << "    ###########  #########\n";
	cout << "    ####   #### ####  ####\n";
	cout << "           ####	      ####\n";
	cout << "          ####        ####\n";
	cout << "        ####          ####\n";
	cout << "      ####            ####\n";
	cout << "     ##########       ####\n";
	cout << "     ##########       ####\n\n\n";	

cout <<"du har nu: "<<peng<<" kr\n";

while (1)
{
	cout << "Hur mycket vill du satsa?\n";
	cin >> sats;

	if(sats > peng){
		cerr << "du har för lite pengar\n";}
	
	else if (sats < peng){
	break;
	}
	

}
	
sum1 = 0;	
tk[1] = 'y';
a = 2;

while (tk[1] == 'y'||tk[1] == 'Y')
	{
	i = 1;
	sum1 = 0;
	cout << "Dinna kort är :";
		for (m = 0; m < a; m++)
		{
			if ( a > 11 )
			{ 
				cout << "du är tjock\n";
				break;
			}
			
			cout << " "<<k[i] <<" ";
			sum1 = sum1 + k[i];
			i++;
			
		}
		cout << " \nsumman är: "<<sum1;
	
	a++;
	 if (sum1 <= 21)  (här är det fel lr det uppstår ett fel här jag jag kör det)
			{
			cout<< "\nvill du ha ett till? (Y/N)\n";
			cin >> tk[1];
		 
			}
	 else 
			{
			cout <<"\ndu vart tjock\n\n";
			tk[1] = 'n';;
			
			}

}

a = 2;
d= 1;
	

while (d == 1)
	{
	i = 1;
	sum2 = 0;
	m = 0;

	cout << "Minna kort är :";
		for (m = 0; m < a; m++)
		{
			cout << " "<<km[i] <<" ";
			sum2 = sum2 + km[i];
			i++;
			
		}
		cout << " \nsumman är: "<<sum2<<"\n";
		a++;
			if (sum2 == 18 || sum2 == 19|| sum2 == 20|| sum2 == 21)
			{
				d = 0;
			}
		
			

}
return 0;

}

r ->
Lade in kodtaggar
PeW - moderator

Medlem sedan juni 200010 432 inlägg
#2

Hej

Välkommen till wF!

När du publicerar kod här på wF, så gör det med kod-taggen. Jag redigerade in det i ovan inlägg, men tänk på det i framtiden :)

Ser att du skriver ut från en array.. förmodligen har du ditt fel i att du skriver ut från ett index som inte är initierat, kolla det ;)

Medlem sedan feb. 20034 inlägg
#3

tack det ska jag tänka på....

Medlem sedan aug. 20021 752 inlägg
#4

Du skapar en array med 1 char, tk[1], men du försöker lägga data på position 2, tk[1], all indexering i C++ (och många andra språk) är 0 baserade, dvs första elementet har nr 0. Byt ut alla tk[1] mot tk[0] så kanske det går bättre.

När du deklarerar en array så är indexet 1 baserat, dvs det går från 1 och uppåt, så där ska det fortfarande stå tk[1].

/Viktor

Medlem sedan feb. 20034 inlägg
#5

tackar.. det funkade men det buggar fortfrande men jag måste kolla up det senare.. har inte tid just nu för jag sitter i skolan. tack så mycket för hjälpen :(:))

133 ms totalt · 3 externa anrop · v20260731065814-full.55e59744
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
130 ms — hämta tråd, inlägg och bilagor (db)