hulp nodig met mijn c code.

Status
Niet open voor verdere reacties.

hellflames

Gebruiker
Lid geworden
13 mrt 2007
Berichten
18
De onderstaande code moet het aanzicht van een dobbelsteen weergeven. Je kunt zelf een getal van 1 tot 6 invullen. Helaas compiled de code niet. Ik kan zelf de fout niet vinden en ik hoop dat iemand met meer verstand van C mij kan helpen. C is namelijk nieuw voor mij.

Code:
/* INCLUDES: */
#include  <stdio.h>
#include  <math.h>
#include <conio.h>

/* DEFINES: */
#define  LINE1 "   \n"
#define  LINE2 "X  \n"
#define  LINE3 " X \n"
#define  LINE4 "  X\n"
#define  LINE5 "X X\n"

/* FUNCTION DECLARATIONS: */
int  Input(void);
void Output(void);

/* MAIN PROGRAM: */

int main(void)
{
	char chAgain = 'y';

		while(chAgain == 'y')
			{
				Output();
				printf("Do you want to run this program again?[y/n]:");
				chAgain = getche();
				printf("\n");
			}
	return 0;
}

/* FUNCTION DEFINITIONS: */

int Input(void)

{
	int nNumber;

	printf("Enter a number from 1 to 6: ");
	scanf("%d",&nNumber);

	return(nNumber);
}

void Output()

{
	char[6][4] chDice = new char[6][4]
								{
								 new char[]{LINE1,LINE3,LINE1},
								 new char[]{LINE2,LINE1,LINE4},
								 new char[]{LINE2,LINE3,LINE4},
								 new char[]{LINE5,LINE1,LINE5},
								 new char[]{LINE5,LINE3,LINE5},
								 new char[]{LINE5,LINE5,LINE5}
								};

	int nInput = Input();

	if (nInput < 1 || nInput > 6)
	{
		printf("Input number can't be shown");
	}
	else
	{
		for( int i = 0; i <=2; i++)
		{
			printf("%s",chDice[nInput-1][i]);
		}
	}
	printf("\n");
}

Ik kan zelf de fout niet vinden en ik hoop dat iemand met meer verstand van C mij kan helpen. C is namelijk nieuw voor mij.
 
De onderstaande code moet het aanzicht van een dobbelsteen weergeven. Je kunt zelf een getal van 1 tot 6 invullen. Helaas compiled de code niet. Ik kan zelf de fout niet vinden en ik hoop dat iemand met meer verstand van C mij kan helpen. C is namelijk nieuw voor mij.

Code:
/* INCLUDES: */
#include  <stdio.h>
#include  <math.h>
#include <conio.h>

/* DEFINES: */
#define  LINE1 "   \n"
#define  LINE2 "X  \n"
#define  LINE3 " X \n"
#define  LINE4 "  X\n"
#define  LINE5 "X X\n"

/* FUNCTION DECLARATIONS: */
int  Input(void);
void Output(void);

/* MAIN PROGRAM: */

int main(void)
{
	char chAgain = 'y';

		while(chAgain == 'y')
			{
				Output();
				printf("Do you want to run this program again?[y/n]:");
				chAgain = getche();
				printf("\n");
			}
	return 0;
}

/* FUNCTION DEFINITIONS: */

int Input(void)

{
	int nNumber;

	printf("Enter a number from 1 to 6: ");
	scanf("%d",&nNumber);

	return(nNumber);
}

void Output()

{
	char[6][4] chDice = new char[6][4]
								{
								 new char[]{LINE1,LINE3,LINE1},
								 new char[]{LINE2,LINE1,LINE4},
								 new char[]{LINE2,LINE3,LINE4},
								 new char[]{LINE5,LINE1,LINE5},
								 new char[]{LINE5,LINE3,LINE5},
								 new char[]{LINE5,LINE5,LINE5}
								};

	int nInput = Input();

	if (nInput < 1 || nInput > 6)
	{
		printf("Input number can't be shown");
	}
	else
	{
		for( int i = 0; i <=2; i++)
		{
			printf("%s",chDice[nInput-1][i]);
		}
	}
	printf("\n");
}

Ik kan zelf de fout niet vinden en ik hoop dat iemand met meer verstand van C mij kan helpen. C is namelijk nieuw voor mij.

zelf ben ik meer bekent met de c++ code, maar dat lijkt er wel op.

zoals jij hier hebt staan:
Code:
return(number);
moet zijn:
Code:
return number;

als dit het niet is, geef dan aub wat meer informatie over de foutmelding
 
dat was het niet. Misschien wel handig om de fouten te geven inderdaad.

Error TEST21v3.CPP 65: Declaration terminated incorrectly in function Output()
Error TEST21v3.CPP 84: Undefined symbol 'chDice' in function Output()
 
opgelost

Code:
		char chDice[6][3][5] = {
									{LINE0,LINE2,LINE0},
									{LINE1,LINE0,LINE3},
									{LINE1,LINE2,LINE3},
									{LINE4,LINE0,LINE4},
									{LINE4,LINE2,LINE4},
									{LINE4,LINE4,LINE4}
								  };

ik had een array van 6 lang bestaande uit 3 strings die weer uit 4 tekens bestaan exclusief de \0. Eigenlijk best een domme fout. Ben de LINEs ook maar bij LINE0 begonnen beviel me beter.
 
Laatst bewerkt:
Je kan de dobbelsteen ook gewoon samenstellen als "LINE1 LINE3 LINE1":

[cpp]
#include <stdio.h>
#include <stdlib.h>

#define LINE1 " \n"
#define LINE2 "X \n"
#define LINE3 " X \n"
#define LINE4 " X\n"
#define LINE5 "X X\n"

void PlayDice();

int main()
{
while (1)
{
PlayDice();
printf("Do you want to run this program again?[y/n]:");
if (toupper(getche()) != 'Y') break;
printf("\n");
}

return 0;
}

int ThrowDice()
{
int value;
printf("Enter a number from 1 to 6: ");
scanf("%d",&value);

return value;
}

void PlayDice()
{
static char *dice[] =
{
LINE1 LINE3 LINE1,
LINE2 LINE1 LINE4,
LINE2 LINE3 LINE4,
LINE5 LINE1 LINE5,
LINE5 LINE3 LINE5,
LINE5 LINE5 LINE5
};

int value = ThrowDice();
printf("%s\n", value >= 1 && value <= 6 ? dice[value-1] : "Input number can't be shown");
}
[/cpp]
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan