0
I’m trying to convert this below algorithm into c language but I’m having trouble calling the variable and assigning a value to p.key=1 of the struct element.
Error Code:
error: request for Member 'chave' in Something not a Structure or Union
Algorithm
Programa Ponteiro_L5_EX01;
Tipo
Ponteiro = ^Elemento;
Elemento = Registro
chave : Inteiro;
Prox : Ponteiro
fim;
Var p,prim,h,q : Ponteiro
i : Inteiro
Início
prim <- nil;
aloque(p);
h <- p;
p^.chave <- 1; //ERRO
para i de 1 até 3 faça
início
aloque(p);
q^.chave <- p^.chave+2;
imprima(h^.chave,p^.chave,q^.chave);
p <- q;
fim;
fim-para;
imprima(h^.chave,p^.chave;q^.chave);
fim.
Code in C
#include<stdio.h>
#include<stdlib.h>
typedef struct elemento *ponteiro;
struct elemento
{
int chave;
ponteiro prox;
};
main()
{
ponteiro p,prim,h,q;
int i;
prim=NULL;
p=(struct ponteiro * )malloc(sizeof(ponteiro));
h=p;
p.chave=1; //ERRO
for(i=0;i<3;i++)
{
q=(struct ponteiro *)malloc(sizeof(ponteiro));
q.chave=p.chave+2;
printf("%d %d %d",h.chave, p.chave, q.chave);
p=q;
}
printf("%d %d %d",h.chave,p.chave,q.chave);
}
Usually it is better to understand the problem and solve in the language you want, without trying to convert something.
– Maniero