1
Guys, I just started to learn Chained List in C language. Why didn’t my code display full string on the screen? It is displaying only integers or 1 character. The problem is in the display part (the error must be from line 63 of the program below) which shows no strings. This is the model the teacher is teaching. If someone can give a check and help me find the formula to print the student list (strings) correctly thank you very much for the help.. tmj S2
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Alunos {
char informacao;
struct Alunos *proximo;
}Aluno;
int main ()
{
Aluno* Lista;
int opcao=0;
void IniciarLista(Aluno **pRecebido);
void InserirElemento(Aluno **pRecebido);
void BuscarElemento(Aluno **pRecebido);
void RemoverElemento(Aluno **pRecebido);
int leValor(int *valorRecebido);
Lista = (Aluno*)malloc(sizeof(Aluno));
IniciarLista(&Lista);
for(;;) {
printf("\nDigite 1 para inserir aluno: ");
printf("\nDigite 2 para consultar alunos inseridos: ");
printf("\nDigite 3 para remover aluno: ");
printf("\nDigite 4 para Sair!\n\n");
scanf("%d", &opcao);
opcao = leValor(&opcao);
switch(opcao) {
case 1:
InserirElemento(&Lista);
break;
case 2:
BuscarElemento(&Lista);
break;
case 3:
RemoverElemento(&Lista);
break;
case 4:
exit(0);
}
}
return 0;
}
void IniciarLista(Aluno **pRecebido) {
(*pRecebido)->proximo=NULL;
}
void InserirElemento(Aluno **pRecebido) {
Aluno *temporario;
char nome1[50];
printf("\nNome do aluno: ");
scanf("%s", &nome1);
temporario=(Aluno*)malloc(sizeof(Aluno));
temporario->informacao = nome1[50];
temporario->proximo=(*pRecebido)->proximo;
(*pRecebido)->proximo=temporario;
}
void BuscarElemento (Aluno **pRecebido) {
Aluno *temporario;
if((*pRecebido)->proximo==NULL) {
printf("\nLista vazia!\n");
}else if (temporario!=NULL){
temporario=(Aluno*)malloc(sizeof(Aluno));
temporario=(*pRecebido)->proximo;
{
printf("\nAluno: %s\n", temporario->informacao);
temporario=temporario->proximo;
}
}
}
void RemoverElemento (Aluno **pRecebido) {
Aluno *temporario;
if((*pRecebido)->proximo==NULL) {
printf("\nLista Vazia!\n");
}else {
temporario=(*pRecebido)->proximo;
(*pRecebido)->proximo=temporario->proximo;
free(temporario);
}
}
int leValor(int *valorRecebido) {
while((*valorRecebido>4) || (*valorRecebido<1)) {
printf("\nOpcao invalida. Tente novamente:\n");
scanf("%d", &(*valorRecebido));
}
return(*valorRecebido);
}