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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con c, para final de SIntaxis !
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con c, para final de SIntaxis !  (Leído 2,424 veces)
mariaorlando0922

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Ayuda con c, para final de SIntaxis !
« en: 13 Febrero 2013, 15:16 pm »

El programa no me encuentra errores, se ejecuta normalmente pero cuando entra a la opcion 2 o 3 no funciona y se sale del programa.

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#define MAX 2
struct med
{
       char codigo[7];
       char nom_com[15];
       char monodroga[25];
       char drogueria [25];
       int existencia;
       float precio;
};
void carga(struct med *m, int *contm);
struct med *busca(struct med *m, int contm, int *contexis);
struct med selecciona(struct med *m, int contm);
main()
{
    struct med medicamentos[MAX],*med, seleccion[10],selec;
    char opc;
    int  cond=0,contm=0,caso=0,j=0,i;   
    do{
          printf("\t\t Menu de opciones\n");
          printf("1-Carga datos\n2-Busca\n3-Selecciona\n4-Muestra\n5-Salir\n\n");
          opc =getch();
          switch(opc)
          {
                     case'1': carga(medicamentos, &contm);
                              printf("Cantidad de medicamentos cargados: %d\n", contm);
                              getch();
                              clrscr();
                     break;
                     case'2': while (j<contm)
                              {
                              med= busca(medicamentos,contm,&caso );
                              if(caso)
                              {
                                             seleccion[j]=*med;
                                             j++;
                              }
                              else
                              {
                                  strcpy(seleccion[j].nom_com,"VACIO");
                                  j++;
                              }
                              }
                              for(i=0;i<contm;i++)
                              {
                                                  if(strcmp(seleccion.nom_com,"VACIO")!=0)
                                                  {
                                                                                             printf("Nombre Comercial %s\nMonodroga: %s\nDrogueria: %s\nExistencia %d\nPrecio %.2f\n", seleccion.nom_com, seleccion.monodroga, seleccion.drogueria, seleccion.existencia, seleccion.precio);
                                                  }
                              }
                              getch();
                     break;
                     case'3': selec=selecciona(medicamentos,contm);
                              printf("Nombre: %s\n precio: %f\n Cantidad: %d", selec.nom_com, selec.precio, selec.existencia);
                             
                              getch();
                     break;
                     case'4':cond=1;
                     break;
                     case'5': cond=1;
                     break;
                     default: printf("Tecla incorrecta\n");
                     break;
          }
    }while (opc!=5 && cond!=1);
system ("PAUSE");
return ;
}

void carga(struct med *m, int *contm)
{
    int i=*contm,cond=0;
    char opc='s';
   
    while (opc=='s' && i<MAX)
    {
          printf("Codigo:\n"); fflush(stdin);
          gets(m.codigo);
          printf("Nombre Comercial:\n"); fflush(stdin);
          gets(m.nom_com);
          printf("Monodroga:\n"); fflush(stdin);
          gets(m.monodroga);
          printf("Drogueria:\n"); fflush(stdin);
          gets(m.monodroga);
          printf("Existencia\n");
          scanf("%d", &m.existencia);
          printf("Precio:\n");
          scanf("%d", &m.precio);
           cond=1;
          (*contm)++;
          printf("desea ingresar otro dato\n");
          opc=getch();
         
    }
    if(cond==0)
    {
            printf("No se cargaron datos\n");
    }
}
struct med *busca(struct med *m, int contm, int *caso)
{
       char mon_ing[25];
       int i, flagg=0,cas;
       
       printf("Ingrese monodroga a buscar:\n");
       scanf("%s", mon_ing);
       
       for(i=0; i<contm; i++)
       {
                if(strcmp(m.monodroga,mon_ing)==0)
                {
                                                      cas=1;
                                                      caso=&cas;
                                                      return (&m);
                }
                else
                {
                    cas=0;
                    caso=&cas;
                    return (0);
                }
       }
}
struct med selecciona(struct med *m, int contm)
{
       int i,flagg=0;
       float pmin;
       
       for(i=0;i<contm;i++)
       {
                           if(flagg==0)
                           {
                                       pmin=m.precio;
                                       flagg=1;
                           }
                                       if(m.precio<pmin)
                                       {
                                                           if(m.existencia>0)
                                                           {
                                                                                return (m);
                                                           }
                                       }
       }
}


En línea

alister


Desconectado Desconectado

Mensajes: 513


Ver Perfil
Re: Ayuda con c, para final de SIntaxis !
« Respuesta #1 en: 13 Febrero 2013, 15:39 pm »

y has intntado establecer alguna hipotesis analizando el codigo?

de hecho, es lo que te ha pedido tu profesor...


En línea

Back 2 business!
durasno


Desconectado Desconectado

Mensajes: 373


Ver Perfil
Re: Ayuda con c, para final de SIntaxis !
« Respuesta #2 en: 14 Febrero 2013, 21:47 pm »

Para q te puedan ayudar pone el programa usando las GeSHi, porque sino sale todo en cursiva y nose puede probar el codigo. Saludos
En línea

Ahorrate una pregunta, lee el man
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

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