---
title: "vad är det för fel på koden?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/c-cpp/77744-vad-är-det-för-fel-på-koden"
topic: "C/C++"
topic_url: "https://www.webforum.nu/amne/c-cpp"
author: "Injssc"
published: "2003-05-22T13:02:16.000Z"
updated: "2003-06-03T15:03:09.000Z"
replies: 9
views: 380
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/c-cpp/77744-vad-är-det-för-fel-på-koden"
---

# vad är det för fel på koden?

## #1 — Injssc, 2003-05-22T13:02Z

Är det någon som kan se vad jag ska ändra för att det ska fungera?

Koden lyder :
\#include \<stdlib.h\>
\#include \<time.h\>
\#include \<iostream.h\>
\#include \<math.h\>
\#include \<conio.h\>

//Score
void Score(int a, int b, int);
int Check(int k, int, int);
int ladder(int y, bool);

//Dice
void RollDices(int t);

//Yatzy

const char Names\[\] =
{
"Ettor      ",
"Tvaor      ",
"Treor    ",
"Fyror     ",
"Femor     ",
"Sexor     ",
"Par     ",
   "2par   ",
"3tal    ",
"4tal     ",
   "LStege ",
"SStege ",
   "Kak ",
"Chans    ",
   "Yatzy     "
};

//Result
int poengSum(int poen, int summ, int);
void SkrivVal(int Val);
void ReportResult(int rap);

int main()
{
int tkast\[5\];
int upp_poeng\[15\];
int tSum_poang = 0;
int i;
   int kasta_tarning, poang, upp_poang;

   
// Initiera Randomizer
srand(time(0));

// Initiera iDices och iAchievedScores
for (i = 0; i \< 5; i++)
{
tkast *\= 0;
upp_poeng *\= -1;
}

for (i = 5; i \< 15; i++)
{
upp_poang *\= -1;
}

cout \<\< " valkomen till Yatzy " \<\<endl;
for (i = 0; i \< 15; i++)
{

cout \<\< endl \<\< "du kan nu kasta tarningarna " \<\< Names *\<\< endl;
kasta_tarning(tkast);
poang(tkast, upp_poang, i);
ReportResult(upp_poang);

}

return 0;
}

void poeng(int tkast, int upp_poang, int rakna)
{
int kast = 0;
int kast2 = 0;
int poang = 0;
int i;
    

switch(rakna)
{
case 0:
case 1:
case 2:
case 3:
case 4:
case 5:
for (i = 0; i \< 5; i++)
{ 
if (tkast *\== rakna + 1)
{
poang += rakna + 1;
}
}
break;

case 6: // par
case 7: // triss
case 8: // fyrtal
poang = prova(tkast, rakna - 4, 1);
break;

case 9: // tvåpar
poang = prova(tkast, 2, 2);
// dice = score / 2;
break;
case 10: // Kåk...
poang = prova(tkast, 3, 1);

if (poang != 0)
{
kast = poang / 3;
poang = poang + prova(tkast, 2, 1);
kast2 = (poang-kast\*3)/2;
if (kast = kast2)
{
poang = 0;
}
}
else
{
poang = 0;
}
case 11: // Liten stege
poang = stege(tkast, true);
break;
case 12: // Stor stege
poang = stege(tkast, false);
break;
case 13: // Yatzy!
kast = tkast\[0\];
if (tkast\[1\] ==kast && tkast\[2\] == kast && tkast\[3\] == kast && tkast\[4\] == kast && tkast\[5\] == kast)
{
poang = kast \* 5;
}
else
{
poang = 0;
}
break;
case 14: // Chans
for(int i = 0; i \< 5; i++)
{
poang += tkast*;
}
break;
}
upp_poang\[rakna\] = poang;
}

int prova(int \*Tkast, int iAntalLika, int iAntalX)
{
int prova\[6\];
int halaParValue = -1;
int i;

for (i = 6; i \> 0; i--)
{ 
prova\[i-1\] = 0;
for (int j = 0; j \< 5; j++) 
{ 
if (Tkast\[j\] == i)
{
prova\[i-1\]++;
}
}
}
for (i = 6; i \> 0; i--)
{ 
if (prova\[i-1\] == iAntalLika)
{
if (iAntalX == 1)
{
return i \* iAntalLika;
}
else if (iAntalX == 2)
{
if (halaParValue == -1)
{
halaParValue = i \* iAntalLika;
}
else
{
return i \* iAntalLika + halaParValue;
}
}

{

}
}
}
return 0;

void swap(int &i, int &j)
{
int k = i;
i = j;
j = k;
}

int stege(int Tkast, bool liten)
{
long sum = 0;
int i,
j;

for (i = 0; i \< 5; i++)
{
for (j = i; j \< 5; j++)
{
if (Tkast *\> Tkast\[j\])
{
swap(Tkast*, Tkast\[j\]);
}
}
}

for (i = 0; i \< 5; i++)
{
sum += Tkast *\* (int)pow(10,i);
} 

if (sum == 54321 && liten)
{
return 15;
}
else if (sum == 65432 && !liten)
{
return 20;
}
else
{
   getch();
return 0;

}
}

/\* random funktion av slumptal\*/

inline int getRand6() 
{
return rand() % 6 + 1;
}

void visakast(int Value)
{

switch (Value)
{
case 1:
\++Ettor;
break;
case 2:
\++Tvaer;
break;
case 3:
\++Treor;
break;
case 4:
\++Fyror;
break;
case 5:
\++Femor;
break;
case 6:
\++Sexor;
break;
}

{

// tar tarningkast

void visaTarningar (int Tkast)
{

for(int i=1; i\<=3;i++)
   {
    for(int j=1; j\<=5;j++)
      {
       cout \<\< " \| ";
        visakast(Tkast\[j-1\], i);
        cout \<\< " \| ";
      }
      cout \<\< endl;
   }
}

void kasta_tarning(int Tkat)
{
int info, tarning_sla_om;

   //forstakast

   for(int j=1;j\<=5; j++)
   {
    Tkast\[j-1\]=getRand6();
   }

   visaTarningar(Tkast);

   //om man vill sla om

   for(int i=1;i\<=2,i++)
   {
    cout \<\< " vilka terningar vill du kasta (0-5)? ";
      cin \>\> info;

      // loop for vilken tarning du vill sla om

      if(info !=5)
      {
       cout \<\< " vilka terningar vill du kasta om ?";

      }

      else

      {

       cout \<\< " kasta tarningarna " \<\< endl;

      }

      for(int j=1;j\<=info;j++)
      {
       if(info !=5)
        {

        cin \>\> tarning_sla_om;
        }

        else
        {
        tarning_sla_om =j;
        }

        tkast\[tarning_sla_om-1\]=getRand6();
      }

      visaTarningarna(Tkast);
    }
}

void ReportResultat(int upp_poang)
{

int tSumBon = 0;
      int tSumDig = 0;
      int tSumRes = 0;
      int tSumTtl = 0;

      tSumDig = poangSum(upp_poang, 0, 5);
      if (tSumDig \>= 63)
      {

       tSumBon = 50;
      }

      tSumRes = poangSum(upp_poang, 6, 14);
      tSumTtl = tSumDig + tSumBon + tSumRes;

      cout \<\< endl;

      for(int i=0; i \< 9; i++)
      {
       if ( i \< 6 )
        {

        cout \<\< namn*;
            skriv_val(upp_poang*);
            cout \<\< " \| ";
        }

        else if(i == 6)
        {
        cout \<\< " .......... ";
        }

        else if(i == 7)
        {

        cout \<\< " sum ";
               skriv_val(tSumDig);
               cout \<\< " \|   ";

        }

        else

        {

        cout \<\< " Bonus ";
            skriv_Val(tSumBon);
            cout \<\< " \| ";
        }

        cout \<\< namn\[i+6\];
        skriv_Val(upp_poang\[i+6\]);
        cout \<\< endl;
    }
    cout \<\< " " \<\< endl;
    cout \<\< " ";
    skriv_Val(tSumTtl);
    cout \<\< endl;
}

void skriv_Val(int Value)
{

if(Value \>= 10)
   {
    cout \<\< Value;

   }

   else if (Value \>= 0)
   {
    cout \<\< " " \<\< Value;
   }

else

   {

    cout \<\< "   ";

   }
}

int poangSum(int upp_poang, int start, int stop)
{

int tSum =0;

   for( int i = start;i\>=stop; i++)
   {
    if(upp_poang *\> 0)
      {

       tSum += upp_poang*;
      }
   }
   return tSum;
}*************

Permalänk: https://www.webforum.nu/p/77744

## #2 — Viktor, 2003-05-22T13:07Z

Vad är det för fel? Får du något fel medelande? När blir det fel?

tips: Läs [Kodtaggar](http://www.webforum.nu/showthread.php?s=&threadid=71753)

/Viktor

Permalänk: https://www.webforum.nu/p/1058471

## #3 — PeW, 2003-05-22T13:31Z

<http://www.webforum.nu/misc.php?s=&action=bbcode>

Sen var det så många fel i din kod att jag (vilket inte behöver hindra andra), avstår att lusa av den. Vad kör du med för utvecklingsverktyg? Du har ju massor av rena syntaxfel som du måste få bort.. som felvändna måsvingar, matris som är deklarerad som array, odeklarerade pekare i funktionsprototyper m.m.. listan kan göras till istort sett alla fel man kan göra ;)

Men en normal ANSI kompilator ger syntax-felutskrifter.. om du börjar med att bena ut dem ett efter ett så kommer det säkert lösa sig. Börja med din char array som egentligen ska vara en matris (Kolla i litteraturen får du se hur det funkar eller ställ en fråga om det här ifall du undrar över detaljerna). Sen se till att deklarera alla funktioner innan de används, du har visst missat ett par tre stycken. Sen får du se till att ge funktionsparametrarna rätt deklarationer.. en kasta_taerning(int,int) är inte detsamma som kasta_taerning(int\*,int) osv... 

Puh! ;)

Permalänk: https://www.webforum.nu/p/1058499

## #4 — stenmark, 2003-05-22T19:08Z

Ett litet tips från mej kan vara att bygga upp programmet i omgångar. Gör en funktion, testa den så att du vet att den funkar i alla lägen. Fortsätt med nästa osv. Tills du har hela programmet klart. Det gör det mycket lättare att felsöka. Det är ingen som orkar sätta sig här och gå igenom hela din kod och räkna upp 10-tals fel.

Permalänk: https://www.webforum.nu/p/1058772

## #5 — aasah, 2003-05-22T19:17Z

> **stenmark skrev:**
>
> Ett litet tips från mej kan vara att bygga upp programmet i omgångar. Gör en funktion, testa den så att du vet att den funkar i alla lägen. Fortsätt med nästa osv. Tills du har hela programmet klart...

Det motsvarar den vettigaste programmeringsparadigm man kan använda. Ju mer man skriver på en gång ju mer är det som (kan) bli tokigt och ju svårare blir det att hitta felen. 

När det gäller felmeddelanden från kompilatorn ska du även veta detta: ETT enda fel KAN ge upphov till många felmeddelanden. Därför ska man alltid "debugga" ett i taget. Ta hand om första felet, kompilera igen, ta hand om första felet, kompilera... annars kan man leta ihjäl sig efter fel som är följdfel...

Permalänk: https://www.webforum.nu/p/1058781

## #6 — PeW, 2003-05-22T20:48Z

Design är A och O..

Permalänk: https://www.webforum.nu/p/1058897

## #7 — Injssc, 2003-05-23T14:26Z

nu har jag kommit hit

nu har jag kommit så här långt och då får jag felet deckarations sytax error. Vad ska jag ändra för att det ska fuvinna så att det fungerar?

\#include \<stdlib.h\>
\#include \<time.h\>
\#include \<iostream.h\>
\#include \<math.h\>
\#include \<conio.h\>

//Score
void poang(int \*b, int);
int prova(int \*k, int, int);
int stege(int \*y, bool);

//Dice
void RollDices(int \*t);

//Yatzy

const char \*Names\[\] =
{
	"Ettor      ",
	"Tvaor      ",
	"Treor      ",
	"Fyror      ",
	"Femor      ",
	"Sexor      ",
	"Par        ",
   "2par       ",
	"3tal       ",
	"4tal       ",
   "LStege     ",
	"SStege     ",
   "Kak        ",
	"Chans      ",
   "Yatzy      "
};

//Result
int	poengSum(int poen, int sum, int);
void  SkrivVal(int Val);
void  ReportResult(int \*rap);

int main()
{
	int tkast\[5\];
	int upp_poang\[15\];
   int i;
   
	// Initiera Randomizer
	srand(time(0));
	
	// Initiera iDices och iAchievedScores
	for (i = 0; i \< 5; i++)
	{
		tkast *\= 0;
		upp_poang *\= -1;
	}

	for (i = 5; i \< 15; i++)
	{
		upp_poang *\= -1;
	}

	cout \<\< " valkomen till Yatzy " \<\<endl;
	for (i = 0; i \< 15; i++)
	{

		cout \<\< endl \<\< "du kan nu kasta tarningarna " \<\< Names *\<\< endl;
      

	}
	
	
}

void poeng(int \*tkast, int upp_poang, int rakna)
{
	 int kast = 0;
	 int kast2 = 0;
	 int poang = 0;
    int i;
    

	switch(rakna)
	{
	case 0:
	case 1:
	case 2:
	case 3:
	case 4:
	case 5:
		for (i = 0; i \< 5; i++)
		{			
			if (tkast *\== rakna + 1)
			{
				poang += rakna + 1;
			}
		}
		break;
 
	case 6:	// par
	case 7:	// triss
	case 8:	// fyrtal
		poang = prova(tkast, rakna - 4, 1);
	break;
	 
	case 9: // tvåpar
		poang = prova(tkast, 2, 2);
//		dice = score / 2;
	break;
	case 10: // Kåk...
		poang = prova(tkast, 3, 1);
		
		if (poang != 0)
		{
			kast = poang / 3;
			poang = poang + prova(tkast, 2, 1);
			kast2 = (poang-kast\*3)/2;
			if (kast = kast2)
			{
				poang = 0;
			}
		}
		else
		{
			poang = 0;
		}
	case 11: // Liten stege
		poang = stege(tkast, true);
		break;
	case 12: // Stor stege
		poang = stege(tkast, false);
		break;
	case 13: // Yatzy!
		kast = tkast\[0\];
		if (tkast\[1\] ==kast && tkast\[2\] == kast && tkast\[3\] == kast && tkast\[4\] == kast && tkast\[5\] == kast)
		{
			poang = kast \* 5;
		}
		else
		{
			poang = 0;
		}
		break;
	case 14: // Chans
		for(int i = 0; i \< 5; i++)
		{
			poang += tkast*;
		}
		break;

      }
      

 }

int prova(int \*tkast, int iAntalLika, int iAntalX)
{
	 int prova\[6\];
	 int halaParValue = -1;
	 int i;

	 for (i = 6; i \> 0; i--)
		 {
			prova\[i-1\] = 0;
			for (int j = 0; j \< 5; j++)
			{
			 	 if(tkast\[j\] == i)
			 	 {
			 		prova\[i-1\]++;
			 	  }
			}
		}
	 for (i = 6; i \> 0; i--)
	 {
			if (prova\[i-1\] == iAntalLika)
			{
           if (iAntalX == 1)
			  {
					return	i \* iAntalLika;
			  }

			 		else if (iAntalX == 2)
				 	{

						if (halaParValue == -1)
						{

                 		halaParValue = i \* iAntalLika;
							}
								else
								{

					 		return i \* iAntalLika + halaParValue;

				 		}
 }     }      }

void swap(int &i, int &j)
{
	 int k = i;
	 i = j;
	 j = k;

int stege(int tkast\*, bool liten)
{
	 long sum = 0;
	 int i,
		 j;

	 for (i = 0; i \< 5; i++)
	 {

		for (j = i; j \< 5; j++)
		{
			 if (tkast *\> tkast\[j\])
			 {

				swap(tkast*, tkast\[j\]);
			 }
		}

	 		for (i = 0; i \< 5; i++)
		 	{
				sum += tkast *\* (int)pow(10,i);
		 	}

	 		if (sum == 54321 && liten)
		 	{

			return 15;
		 	}

	 		else if (sum == 65432 && !liten)
		 	{
				return 20;
		 	}
	 			else
	  }

   getch();
	return 0;

}

/\* random funktion av slumptal\*/

inline int getRand6()
{
		return rand() % 6 + 1;
}

void visakast(int Value)
{

	switch (Value)
	{
	case 1:
		\++Ettor;
		break;
	case 2:
		\++Tvaer;
		break;
	case 3:
		\++Treor;
		break;
	case 4:
		\++Fyror;
		break;
	case 5:
		\++Femor;
		break;
	case 6:
		\++Sexor;
		break;
	}

}

// tar tarningkast

void visaTarningar (int tkast)
{

	for(int i=1; i\<=3;i++)
   {
   	for(int j=1; j\<=5;j++)
      {
      	cout \<\< " \| ";
         visakast(tkast\[j-1\], i);
         cout \<\< " \| ";
      }
      cout \<\< endl;
   }
}

void kasta_tarning(int tkast)
{
	int  info, tarning_sla_om;

   //forstakast

   for(int j=1;j\<=5; j++)
   {
   	tkast\[j-1\]=getRand6();
   }

   visaTarningar(tkast);

   //om man vill sla om

   for(int i=1;i\<=2,i++)
   {
   	cout \<\< " vilka terningar vill du kasta (0-5)? ";
      cin \>\> info;

      // loop for vilken tarning du vill sla om

      if(info !=5)
      {
      	cout \<\< " vilka terningar vill du kasta om ?";

      }

      else

      {

      	cout \<\< " kasta tarningarna " \<\< endl;

      }

      for(int j=1;j\<=info;j++)
      {
      	if(info !=5)
         {

         	cin \>\> tarning_sla_om;
         }

         else
         {
         	  tarning_sla_om =j;
         }

         tkast\[tarning_sla_om-1\]=getRand6();
      }

      visaTarningarna(tkast);
   }
 }

 void ReportResultat(int \*upp_poang)
 {

 		int tSumBon = 0;
      int tSumDig = 0;
      int tSumRes = 0;
      int tSumTtl = 0;

      tSumDig = poangSum(upp_poang, 0, 5);
      if (tSumDig \>= 63)
      {

      	tSumBon = 50;
      }

      tSumRes = poangSum(upp_poang, 6, 14);
      tSumTtl = tSumDig + tSumBon + tSumRes;

      cout \<\< endl;

      for(int i=0; i \< 9; i++)
      {
      	if ( i \< 6 )
         {

         	cout \<\< namn*;
            skriv_val(upp_poang*);
            cout \<\< " \| ";
         }

         else if(i == 6)
         {
         	cout \<\< " .......... ";
         }

         else if(i == 7)
         {

         		cout \<\< " sum  ";
               skriv_val(tSumDig);
               cout \<\< " \|   ";

         }

         else

         {

         	cout \<\< " Bonus  ";
            skriv_Val(tSumBon);
            cout \<\< " \|  ";
         }

         cout \<\< namn\[i+6\];
         skriv_Val(upp_poang\[i+6\]);
         cout \<\< endl;
    }
    cout \<\< "  " \<\< endl;
    cout \<\< "  ";
    skriv_Val(tSumTtl);
    cout \<\< endl;
}

void skriv_Val(int Value)
{

	if(Value \>= 10)
   {
   	cout \<\< Value;

   }

   else if (Value \>= 0)
   {
   	cout \<\< "  " \<\< Value;
   }

	else

   {

   	cout \<\< "   ";

   }
}

int poangSum(int upp_poang, int start, int stop)
{

	int tSum =0;

   for( int i = start;i\>=stop; i++)
   {
   	if(upp_poang *\> 0)
      }

      	tSum += upp_poang*;
      }
   }
   return tSum;

}*************

Permalänk: https://www.webforum.nu/p/1059500

## #8 — PeW, 2003-05-23T18:53Z

Genom ditt första inlägg har du fått ett PM från mig om kodtaggarna. Din kod är hopplös att försöka få något vettigt ur när den ser ut som ovan, utan indentering m.m.. även andra har ju påtalat detta för dig så om du verkligen är seriös i din fråga kunde du väl vara lite mer tillmötesgående om vad vi andra vill ha för att kunna hjälpa dig?

Permalänk: https://www.webforum.nu/p/1059736

## #9 — md2perpe, 2003-05-23T21:08Z

I hur många forum frågar du egentligen? Du ställer dina frågor , på bbs.linux.se, PHPportalen, point-blank.nu, CCSweden och här...

Permalänk: https://www.webforum.nu/p/1059848

## #10 — Injssc, 2003-06-03T15:03Z

Tack för alla svar jag har fått.

Permalänk: https://www.webforum.nu/p/1073117

---

Tråden på webben: https://www.webforum.nu/amne/c-cpp/77744-vad-är-det-för-fel-på-koden
