-1
I made this code with the purpose of asking for notes and names and then printing on the screen, but for some reason the name n is being shown the name q was typed. The code was made in C.
{
#include <stdio.h>
#include <stdlib.h>
typedef struct ElementoLista{
char nome[81];
char matricula[8];
char turma;
float p1;
float p2;
float p3;
struct ElementoLista*prox;
}ElementoLista;
typedef struct Lista{
ElementoLista*inicio;
ElementoLista*fim;
}Lista;
Lista*CriandoLista(){
Lista*lista;
lista=(Lista*)malloc(sizeof(Lista));
lista->inicio=NULL;
lista->fim=NULL;
return lista;
}
void CopiarString(char*origem,char*Destino){
while(*origem!='\0'){
*Destino=*origem;
Destino++;origem++;
}
*Destino='\0';
}
ElementoLista*CriandoElemento(float p1,float p2,float p3,char*nome){
ElementoLista*novo=(ElementoLista*)malloc(sizeof(ElementoLista));
memset(novo,0,sizeof(ElementoLista));
CopiarString(novo->nome,nome);
novo->p1=p1;
novo->p2=p2;
novo->p3=p3;
novo->prox=NULL;
return novo;
}
void addElemento(Lista*lista,ElementoLista*novoElemento){
if(lista->inicio==NULL){
lista->fim=novoElemento;
lista->inicio=novoElemento;
}else{
lista->fim->prox=novoElemento;
novoElemento->prox=NULL;
lista->fim=novoElemento;
}
}
void Imprimir(Lista*lista){
ElementoLista*aux=lista->inicio;
while(aux!=NULL){
printf("Nome Da Pessoa \n");
for(int i=0;(aux->nome[i])!='\0';i++){
printf("%c",aux->nome[i]);
}
printf("\n");
printf("p1= ");
printf("%f\n",aux->p1);
printf("p2= ");
printf("%f\n",aux->p2);
printf("p3= ");
printf("%f\n",aux->p3);
aux=aux->prox;
}
}
int main(){
Lista*lista=CriandoLista();
float a=1.2,b=1.5,c=5.6;
char nome[81];
printf("De o nome Da Pessoa ");
scanf("%s",&nome);
addElemento(lista,CriandoElemento(a,b,c,nome));
Imprimir(lista);
}
}