Ayuda con Estructuras

Iniciado por mari2diaz, 8 Febrero 2020, 07:40 AM

0 Miembros y 1 Visitante están viendo este tema.

mari2diaz

El programa deja de funcionar con la funcion imprimir_mercado, y no entiendo por que sucede esto

#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct Mercados_Municipales{
char nombre[20];
char direccion[50];
char telefono[11];
}Mercados;

Mercados leer_mercado(void);
void imprimir_mercado(Mercados mercado);

int main(){
Mercados mercados[20];
Mercados mercado;
char desicion;
int i, cantidad = 0, numero;

printf("\n\t\tMercados Municipales de Ciudad Guayana\n\n");

while(cantidad < 20){

do{
printf("%d Mercados Municipales. Pasamos a otro? [S/N] ", cantidad);
desicion = getchar(); // Leemos un caracter
while(getchar() == EOF); // Necesario para se coma el \n
}while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
if(desicion == 'N' || desicion == 'n') break; // Si elige N, se sale

mercado = leer_mercado();
mercados[cantidad++] = mercado;
}

printf("\nMostrar informacion del Mercado: ");
scanf("%d", numero);

imprimir_mercado(mercados[numero]);

return 0;
}

Mercados leer_mercado(){
Mercados mercado;

printf("\nNombre: ");
gets(mercado.nombre);
printf("Direccion: ");
gets(mercado.direccion);
printf("Telefono: ");
gets(mercado.telefono);
printf("\n");

return mercado;
}

void imprimir_mercado(Mercados mercado){
printf("\n\n\t\t%s", mercado.nombre);
printf("\nDireccion: &s\tTelefono: %s\n", mercado.direccion, mercado.telefono);
}

ivancea96

A scanf le tienes que pasar la dirección de la variable:
Código (cpp) [Seleccionar]
scanf("%d", &numero);