Bom dia, sou nova no fórum
Estou com um problema em uma validação obrigada pela ajuda
O problema é o seguinte:
Estou tentando fazer que o programa não deixe gravar id repetido, só que o programa esta verificando somente o primeiro id cadastrado e pulando os outros.
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
#define MAX 5
typedef struct
{
int id;
char modelo[8];
char fabricante[30];
int passageiros;
float comprimento;
float altura;
float velocidade;
float altitude;
char motor [10];
} AVIAO;
typedef struct
{
AVIAO vetor[MAX];
int nElementos;
} LISTA;
void criarLista(LISTA *lista)
{
lista->nElementos = 0;
}
bool IdRepitido(int id, LISTA *lista)
{
int i;
for(i=0; i < lista->nElementos; i++)
{
if(id == lista->vetor[i].id)
{
return true;
}else{
return false;
}
}
}
int main()
{
char op=0;
LISTA lista;
AVIAO av;
criarLista(&lista);
do
{
printf ("1 - Inserir\n");
printf ("2 - Sair\n");
printf ("opcao: ");
scanf ("%c", &op);
switch(op)
{
case '1':
printf ("ID: ");
scanf("%d", &av.id);
while(IdRepitido(av.id,&lista)){
printf ("ID: ");
scanf("%d", &av.id);
}
printf ("passageiros: ");
scanf("%d", &av.passageiros);
printf ("comprimento: ");
scanf("%f", &av.comprimento);
printf ("altura: ");
scanf("%f", &av.altura);
printf ("velocidade: ");
scanf("%f", &av.velocidade);
printf ("altitude: ");
scanf("%f", &av.altitude);
printf ("modelo: ");
scanf("%s", av.modelo);
printf ("fabricante: ");
scanf("%s", av.fabricante);
printf ("motor: ");
scanf("%s", av.motor);
inserir(&lista, av);
}
break;
}
}
while(op!='2');