Quantcast
Channel: Tópicos
Viewing all articles
Browse latest Browse all 11336

Variável corrompida

$
0
0
void listar_data(bd * bdv) { //Listar por data char dn[4]; int i = 0, a = 0, n = 0; char dia_ins[2]; char mes_ins[2]; char dia_aux[2], mes_aux[2]; while (i != 3) { printf("1-Listar por Data de Nascimento (Dia/Mes)\n2-Listar por Mes de nascimento\n3-Voltar ao menu anterior\n"); scanf("%d", &i); if (i == 3) { return 0; } if (i == 1) { printf("Introduza o dia(com 2 digitos)\n"); scanf("%s", &dia_ins); printf("Introduza o mes(com 2 digitos)\n"); scanf("%s", &mes_ins); //printf("%s , %s, %s", atoi(data_ins)); for (n = 0; n < bdv->npessoas; n++) { dia_aux[0] = bdv->vp[n].datanasc[0]; dia_aux[1] = bdv->vp[n].datanasc[1]; mes_aux[0] = bdv->vp[n].datanasc[3]; mes_aux[1] = bdv->vp[n].datanasc[4]; if (dia_aux[0] == dia_ins[0] && dia_aux[1] == dia_ins[1]) { if (mes_aux[0] == mes_ins[0] && mes_aux[1] == mes_ins[1]) { printf("%d %s\n", bdv->vp[n].codigo, bdv->vp[n].nome); } } } } if (i == 2) { printf("Introduza o mes(com 2 digitos)\n"); scanf("%s", &mes_ins); for (n = 0; n < bdv->npessoas; n++) { mes_aux[0] = bdv->vp[n].datanasc[3]; mes_aux[1] = bdv->vp[n].datanasc[4]; if (mes_aux[0] == mes_ins[0] && mes_aux[1] == mes_ins[1]) { printf("%d %s\n", bdv->vp[n].codigo, bdv->vp[n].nome); } } } } } #include "struct_cidadao.h" typedef struct { pessoa *vp; int npessoas; }bd; #define MAX_NOME 200 #define MAX_CIDADE 100 #define MAX_DATA 11 typedef struct { int codigo; char nome[MAX_NOME]; char localidade[MAX_NOME]; char datanasc[11]; int idade; }pessoa; Se eu não correr nenhuma função, ou seja, carregar logo no 3 (voltar ao menu anterior), ele vai mas se eu executar uma das funções ou as duas e depois quiser voltar ao menu anterior aparece aquele erro. O erro será que esta no ciclo while ? Obrigado desde já. Cumps. jorge618 Edit : Esqueci-me de por a imagem

Viewing all articles
Browse latest Browse all 11336

Trending Articles