elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error, el programa se rompe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error, el programa se rompe  (Leído 726 veces)
Gabriele7

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Error, el programa se rompe
« en: 25 Febrero 2017, 06:38 »

Mi problema es que estoy practicando para un examen de la universidad, todavía no vimos punteros, memoria dinámica, etc., solo llegamos hasta estructuras aviso por las dudas si es que ven que el programa no esta hecho de la manera adecuada.El problema en fin es que, cuenta con 4 funciones :

1) ingreso de datos
2) mostrar datos
3) buscar datos por nombre
4) mostrar los clientes con mejores salarios

El problema se da cuando, termino de ingresar los datos y pongo "Mostrar todos los datos" que es la función 2., el programa se rompe, ahora si elimino la función 4. todo funciona con normalidad, ¿que es lo que puede estar mal?.


Código:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <conio.h>
#define N 5

    /*
        void ingresar(struct CLIENTES[], int); //terminado
       void buscar_datos(struct CLIENTES[], int); //terminado
      void mostrar_datos(struct CLIENTES[], int); //terminado con error!
    void ordenamiento_alfabetico(clientes);  // no terminado
    void ordenamiento_sexo(clientes);        //no terminado
    void ordenamiento_saldo(struct CLIENTES[], int);        terminado
    void ordenamiento_hombres_mejor_saldo(clientes);       //no terminado
    void ordenamiento_mujeres_mejor_saldo(clientes);       //no terminado
    */
    struct CLIENTES {
    char nombre[30];
    char apellido[30];
    char sexo;
    int DNI;
    int telefono;
    float saldo;
    int n_cuenta;
    char direccion[30];
   };

        //PROTOTIPOS///////////////////////////
         void ingresar(struct CLIENTES[], int);
         void buscar_datos(struct CLIENTES[], int);
         void mostrar_datos(struct CLIENTES[], int);
         void ordenamiento_saldo(struct CLIENTES[], int);
         //////////////////////////////////////////////////

      int main() {
      struct CLIENTES clientes[N];

        int opcion;

      while (opcion != 5)
      {


    printf("Ingrese una Opcion : ");
    printf("\n\n");
    printf("Opcion 1: Ingresar los datos de los clientes :\n");
    printf("\n\n");
    printf("Opcion 2: Mostrar todos los datos de todos los clientes :\n");
    printf("\n\n");
    printf("Opcion 3:  Buscar datos de clientes por nombre :\n");
    printf("\n\n");
        printf("Opcion 4: Mostrar los datos de los clientes ordenados por     saldo de mayor a menor :");
    printf("\n\n");
    printf("Opcion 5 : Salir!");
    printf("\n\n");
    scanf("%i", &opcion);

    switch (opcion) {
    case 1: ingresar(clientes,N); break;
    case 2: mostrar_datos(clientes,N); break;
    case 3: buscar_datos(clientes,N); break;
    case 4: ordenamiento_saldo(clientes,N); break;
    case 5: break;
    default: printf("La opcion es incorrecta :"); break;
    }


   }
  return 0;
   }

 void ingresar(struct CLIENTES client[],int NUM) {
  int i;
    for (i = 0; i<NUM; i++) {
    printf("Ingrese su nombre :");
    scanf("%s", &client[i].nombre);

    printf("Ingrese su Apellido :");
    scanf("%s", &client[i].apellido);

    printf("Ingrese su sexo : M/F : ");
    scanf("%s", &client[i].sexo);

    printf("Ingrese el DNI :");
    scanf("%i", &client[i].DNI);

    printf("Ingrese su Telefono :");
    scanf("%i", &client[i].telefono);

    printf("Ingrese el saldo de su cuenta : ");
    scanf("%f", &client[i].saldo);


    printf("Ingrese su Numero de Cuenta :");
    scanf("%i", &client[i].n_cuenta);

    printf("Ingrese su direccion :");
    scanf("%s", &client[i].direccion);

         }
     }


 void mostrar_datos(struct CLIENTES dats[], int NUM) {
  int j;

 for (j = 0; j<NUM; j++) {
    printf("Nombre : %s", dats[j].nombre);
    printf("\n\n");
    printf("Apellido :%s ", dats[j].apellido);
    printf("\n\n");
    printf("Sexo : %c", dats[j].sexo);
    printf("\n\n");
    printf("DNI :%i", dats[j].DNI);
    printf("\n\n");
    printf("Numero de Cuenta : %i", dats[j].n_cuenta);
    printf("\n\n");
    printf("Saldo : %f",dats[j].saldo);
    printf("\n\n");
    printf("Direccion : %s", dats[j].direccion);
    printf("\n\n");
       }
  }

 void buscar_datos(struct CLIENTES buscar[], int NUM) {

int k;
char nombre_a_buscar[30];


printf("Ingrese el nombre a buscar : ");
scanf("%s", &nombre_a_buscar);



     for (k = 0; k<NUM; k++) {

    if (strcmp(buscar[k].nombre, nombre_a_buscar) == 0) {

        printf("Nombre : %s", buscar[k].nombre);
        printf("\n");
        printf("Apellido :%s ", buscar[k].apellido);
        printf("\n");
        printf("Sexo : %c",buscar[k].sexo );
        printf("\n");
        printf("DNI :%i", buscar[k].DNI);
        printf("\n");
        printf("Numero de Cuenta : %i", buscar[k].n_cuenta);
        printf("\n");
        printf("Saldo : %f",buscar[k].saldo);
        printf("\n");
        printf("Direccion : %s", buscar[k].direccion);

            }

         }



       }

    void ordenamiento_saldo(struct CLIENTES ordenamiento_client[],int NUM) {

   struct CLIENTES AUX;
   int i,j;

   for(i=0;i<NUM;i++){
    for(j=0;j<NUM-i-1;j++)
    if(ordenamiento_client[j].saldo > ordenamiento_client[j+1].saldo){
    AUX = ordenamiento_client[j];
    ordenamiento_client[j] = ordenamiento_client[j+1];
    ordenamiento_client[j+1] = AUX;
        }


     }
      printf("Los Clientes con mejores salarios son : ");
      printf("\n");
      for(i=5;i<0;i--){
       printf("Nombre : %s",ordenamiento_client[i].nombre);
       printf("\n");
       printf("Saldo : %f",ordenamiento_client[i].saldo);
       printf("\n");

      }

       getch();
     }


En línea

theluigy13etv

Desconectado Desconectado

Mensajes: 179


Primero se hace, después se mejora


Ver Perfil
Re: Error, el programa se rompe
« Respuesta #1 en: 25 Febrero 2017, 13:30 »

Lo acabo de probar y sí funciona bien. Cuando elijo la opción 2 me muestra los datos de las N personas ingresadas


En línea

Gabriele7

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Error, el programa se rompe
« Respuesta #2 en: 25 Febrero 2017, 16:55 »

Lo acabo de probar y sí funciona bien. Cuando elijo la opción 2 me muestra los datos de las N personas ingresadas

Probaste hasta la función 4? Proba todas vas a ver que en la 4 da error.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines