• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

jorijo

Estruturas em C

2 mensagens neste tópico

Boas! To com dificuldades em meter est programa a funcionar... alguem sabe ajudar?

O erro de compilacao foi o seguinte:

D:\ISCAC\Algoritmos e Programação 2\Aulas\Ficha 5\exercicio3.cpp(37) : error C2228: left of '.num_aluno' must have class/struct/union type

D:\ISCAC\Algoritmos e Programação 2\Aulas\Ficha 5\exercicio3.cpp(37) : error C2228: left of '.nome' must have class/struct/union type

D:\ISCAC\Algoritmos e Programação 2\Aulas\Ficha 5\exercicio3.cpp(37) : error C2228: left of '.curso' must have class/struct/union type

D:\ISCAC\Algoritmos e Programação 2\Aulas\Ficha 5\exercicio3.cpp(37) : error C2228: left of '.ano' must have class/struct/union type

//3.a
struct struct_dados
{
int num_aluno, ano;
char nome[50], curso[3];
};


//3.b
struct struct_dados pede_dados()
{

struct_dados aluno;

printf("Introduza o numero de aluno: ");
scanf("%d",&aluno.num_aluno);
printf("Introduza o nome do aluno: ");
gets(aluno.nome);
printf("Introduza o curso do aluno: ");
gets(aluno.curso);
printf("Introduza o ano do aluno: ");
scanf("%d",&aluno.ano);

return aluno;
}

//funcao nao pedida
mostra_alunos(struct struct_dados *alunof, int num)
{
int i;

for(i=0;i<num;i++)
printf("%d - %s - %s - %d\n",*(alunof+i).num_aluno,*(alunof+i).nome,*(alu nof+i).curso,*(alunof+i).ano);
}

//3.c
main()
{
int i,n;
struct struct_dados *alunos;

printf("Quantos alunos deseja introduzir?");
scanf("%d",&n);

if(!(alunos=(struct_dados*)malloc(n*sizeof(struct_ dados))))
{
printf("Memoria insuficiente!");
exit(1);
}

for(i=0;i<n;i++)
*(alunos+i)=pede_dados();

mostra_alunos(alunos,n);

free(alunos);
}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Isso é onde? nesta linha:

printf("%d - %s - %s - %d\n",*(alunof+i).num_aluno,*(alunof+i).nome,*(alu nof+i).curso,*(alunof+i).ano);

O operador * tem menos precedencia que .

(*(alunof+i)).num_aluno

E porque não utilizas alunof[ i ].num_aluno ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora