Problema di indirizzamento

di il
1 risposte

Problema di indirizzamento

Quando eseguo il codice, dopo aver inserito i nomi dei giocatori, come mai in ouput mi viene dato un indirizzo in codice ascii invece del nome? penso sia un problema di riferimento , ma non ne sono certo al 100% e come posso modificarlo in modo da farlo funzionare correttamente, mi date un ulteriore manina?

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define righe 3
#define colonne 5
#define maxvett 15
#define maxnome 10
#define PEDINE 90
#define NUM_USERS 5
#define r 9
#define c 10

typedef struct
{
	char scheda[righe][colonne];	
	char nome[maxnome];
	bool ambo=false;
	bool terno=false;
	bool quaterna=false;
	bool quintina=false;
	bool tombola=false;
	
}giocatore;

giocatore m_user[NUM_USERS]; /* uso l' array di struct per identificare l' utente */

void carica_scheda()
{
	int i,j,y;
	
	for(i=0;i<NUM_USERS;i++)
	{
		printf("Inserici il nome del %d giocatore\t",i+1);
		gets(m_user[i].nome);
		
		for(j=0;j<righe;j++)
		{
			for(y=0;y<colonne;y++)
			{
				m_user[i].scheda[j][y]=0;	
			}
		}
	}
	system("CLS");
}
void inizializza_scheda()
{
	int i,y,j;
	
	for(i=0;i<NUM_USERS;i++)
	{
		printf("la scheda di %s e':\n",m_user[i].nome);
		for(j=0;j<righe;j++)
		{
			for(y=0;y<colonne;y++)
			{
			 	printf("%d\t",m_user[i].scheda[j][y]);	
			}
			printf("\n");
		}
		printf("\n");	
	}
}
void carica_tabellone()
{
	int i,j,num=1;
	int tabella[c][r];
	
	//carico TABLELLONE
	for (i=0; i<r; i++){
		for (j=0; j<c; j++){
			tabella[i][j]=num;
			num++;
		}
	}
	
	printf("TABELLA: \n\n");
	//stampo il TABELLONE
	for (i=0; i<r; i++)
	{
		for (j=0; j<c; j++){
			printf("%d",tabella[i][j]);
			printf("\t");
		}
		printf("\n");
	}
}

void carica_colonne()
{
	int i,col,j,y;
	
	//INIZIO CARICAMENTO DELLA MATRICE DEi GIOCATORI
	
	for(i=0;i<NUM_USERS;i++)
	{
	
		for(j=0;j<=r;j++)
		{
		
			for(y=0;y<=c;y++)
			{
				if(y==0)	//carico la prima colonna con numeri compresi tra 1 e 9
				{
					col=rand()%8+1;
					col++;
					m_user[i].scheda[j][y]=col;	
				}
				if(y==1) 
				{
					col=rand()%(29-10)+10;	//carico la seconda colonna con numeri compresi tra 10 e 29
					col++;
					m_user[i].scheda[j][y]=col;	
				}
				if(y==2) 
				{
					col=rand()%(59-30)+30;	//carico la terza colonna con numeri compresi tra 30 e 59
					col++;
					m_user[i].scheda[j][y]=col;	
				}
				if(y==3) 
				{
					col=rand()%(79-60)+60;	//carico la quarta colonna con numeri compresi tra 60 e 79
					col++;
					m_user[i].scheda[j][y]=col;	
				}
				if(y==4) 
				{
					col=rand()%(90-80)+80;	//carico la quinta colonna con numeri compresi tra 80 e 90
					col++;
					m_user[i].scheda[j][y]=col;		
				}
			
			}
		}
		
	}
	
}
int main()
{
	carica_scheda();
	carica_colonne();
	inizializza_scheda();
	carica_tabellone();
	printf("\n");
	
	int i,y,x,j,scelta,num,estratto,conta;
	
	int vett[maxvett];
	int controllo[PEDINE];

	srand(time(NULL));
	
	//imposto il vettore di controllo a 0
	
	for(x=0; x<=PEDINE; x++)
	{
		controllo[x]=0;
	}
	
	

	system("PAUSE");
	return 0;
}

1 Risposte

  • Re: Problema di indirizzamento

    Succede perché il programma fa casino nello scrivere in memoria ....

    righe e colonne sono 3 e 5 ma tu utilizzi nei cicli r e c che valgono 9 e 10 ... e quindi scrivi oltre lo spazio dell'array scheda


    P.S. Ripeto ... si chiama CINQUINA non QUINTINA ...
Devi accedere o registrarti per scrivere nel forum
1 risposte