Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: mari2diaz en 8 Febrero 2020, 07:40 am



Título: Ayuda con Estructuras
Publicado por: mari2diaz en 8 Febrero 2020, 07:40 am
El programa deja de funcionar con la funcion imprimir_mercado, y no entiendo por que sucede esto

Código
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<string.h>
  4.  
  5. typedef struct Mercados_Municipales{
  6. char nombre[20];
  7. char direccion[50];
  8. char telefono[11];
  9. }Mercados;
  10.  
  11. Mercados leer_mercado(void);
  12. void imprimir_mercado(Mercados mercado);
  13.  
  14. int main(){
  15. Mercados mercados[20];
  16. Mercados mercado;
  17. char desicion;
  18. int i, cantidad = 0, numero;
  19.  
  20. printf("\n\t\tMercados Municipales de Ciudad Guayana\n\n");
  21.  
  22. while(cantidad < 20){
  23.  
  24. do{
  25. printf("%d Mercados Municipales. Pasamos a otro? [S/N] ", cantidad);
  26. desicion = getchar(); // Leemos un caracter
  27. while(getchar() == EOF); // Necesario para se coma el \n
  28. }while(desicion != 'S' && desicion != 's' && desicion != 'N' && desicion != 'n');
  29. if(desicion == 'N' || desicion == 'n') break; // Si elige N, se sale
  30.  
  31. mercado = leer_mercado();
  32. mercados[cantidad++] = mercado;
  33. }
  34.  
  35. printf("\nMostrar informacion del Mercado: ");
  36. scanf("%d", numero);
  37.  
  38. imprimir_mercado(mercados[numero]);
  39.  
  40. return 0;
  41. }
  42.  
  43. Mercados leer_mercado(){
  44. Mercados mercado;
  45.  
  46. printf("\nNombre: ");
  47. gets(mercado.nombre);
  48. printf("Direccion: ");
  49. gets(mercado.direccion);
  50. printf("Telefono: ");
  51. gets(mercado.telefono);
  52. printf("\n");
  53.  
  54. return mercado;
  55. }
  56.  
  57. void imprimir_mercado(Mercados mercado){
  58. printf("\n\n\t\t%s", mercado.nombre);
  59. printf("\nDireccion: &s\tTelefono: %s\n", mercado.direccion, mercado.telefono);
  60. }
  61.  


Título: Re: Ayuda con Estructuras
Publicado por: ivancea96 en 8 Febrero 2020, 15:31 pm
A scanf le tienes que pasar la dirección de la variable:
Código
  1. scanf("%d", &numero);