Ajuda simples em C

se estiveres a fazer as listas com estruturas é bastante simples.

basicamente quando declaras um estrutura, declaras um ponteiro para a estrutura que passa a ser o ponteiro de referencia para os elementos anteriores e seguintes desse elemento.

exemplo:

Código:
struct node {
   char nome;
   int valor;
   struct node *left;
   struct node *right;
};


com um typedef facilitava a coisa mas assim tb funciona.
 
Última edição:
se estiveres a fazer as listas com estruturas é bastante simples.

basicamente quando declaras um estrutura, declaras um ponteiro para a estrutura que passa a ser o ponteiro de referencia para os elementos anteriores e seguintes desse elemento.

exemplo:

Código:
struct node {
   char nome;
   int valor;
   struct node *left;
   struct node *right;
};
com um typedef facilitava a coisa mas assim tb funciona.
Thanks, vou tentar fazer a implementaçao. Tenho tambem um erro com a leitura de um ficheiro de texto que ja o irei colocar.
 
Tenho quase a certeza que a leitura nao esta a ser efectuada correctamente. O ficheiro de texto é o seguinte:

7
h 4
3 E FISICA
7 E ALGORITMOS
8 B BOAS
13 J DADOS
v 3
2 C ELECTROTECNICA
3 E FERIAS
5 K ESTRUTURAS

O 1º numero indica o numero total de palavras. Segunda linha numero de palavras no sentido horizontal, e dps as casas correspondidas pelas pelas palavras, por ai diante. O codigo é o seguinte:

void lertabuleiro(){
int npalavras,ciclos,i,lin,col,compalavra;
char sentido,colpac;
char palavrita[20];
fichtabuleiro= fopen(escolhafix,
"r");
fscanf(fichtabuleiro,
"%d",&npalavras);

for(i=0;i<2;i++){
fscanf(fichtabuleiro,
"%c %d",&sentido,&ciclos);
for(i=0;i<ciclos;i++){
fscanf(fichtabuleiro,
"%d %c %s",&lin,&colpac,&palavrita);
compalavra= strlen(palavrita);
col= (
int)colpac - (int)'a';
for(i=0;i<compalavra;i++){
if (sentido='h')
tab->postatus[lin-1][col-1+i]=espera;
if (sentido='v')
tab->postatus[lin-1+i][col-1]=espera;
}
}
}
}

Penso que logo a partir do 2º fscanf começa a dar problemas, pelo - o debug parece indicar isso, alguem sabe porque? CUmpz
 
tem cuidado k kd fazes o scanf de strings nao deves usar o & na variavel, quanto ao problema, não serao '\n' k ficam no buffer depois de cada scanf? :s

edit: reparei agora k n tas a iniciar o fichtabuleiro, e 1 variavel global?
 
Sim a variavel fichtabuleiro esta iniciada. Quanto à cena do scanf, n era suposto saltar d linha cada vez k s faz um novo scanf? Vou meter esse \n e ver no k da.
 
Flush tambem nao resolveu. Bem vou ter de sair, amanha vou dar um pulo na faculdade para ver se alguem me da uma ajudita. As tantas o erro ate pode ser d outro lado...
Thanks pla ajuda. Cumpz
 
if (sentido='h')
tab->postatus[lin-1][col-1+i]=espera;
if (sentido='v')
tab->postatus[lin-1+i][col-1]=espera;

apesar de nao perceber muito bem o k tas aki a tentar fazer, nao sera "==" em vez de "="? :s

edit: nos if's claro
 
if (sentido='h')
tab->postatus[lin-1][col-1+i]=espera;
if (sentido='v')
tab->postatus[lin-1+i][col-1]=espera;

apesar de nao perceber muito bem o k tas aki a tentar fazer, nao sera "==" em vez de "="? :s

edit: nos if's claro
Sim tens razao, ainda n m larguei dos habitos de pascal. Vou mudar isso ja vejo no k da.
 
Back
Topo