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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Temas
Páginas: [1]
1  Programación / Programación C/C++ / Se puede pasar el campo de una estructura como parametro de funcion? es urgente en: 25 Febrero 2013, 18:36 pm
por ejemplo en un ejerciicos me pide
invocar a la funcion busca para qye desde el main se pueda imprimir el codigo de control de cada medicamento registrado en el mes seleccionado por el usuario.
La estructura es
struct medic
{
char dr[23];
float mg;
char codreg[25];
};
y el prototipo de la funcion es
char *busca(char *, char), devuelve el codigo de control o null segun corresponda y recibe el codigo de registracion (codreg) y el mes.
por favor ayudaaaa
se puede pasar el campo de una estructura y devolver un puntero a char?

2  Programación / Programación C/C++ / LLAMADO A FUNCION QUE RETORNAN ESTRUCTURAS en: 14 Febrero 2013, 02:07 am
ES URGENTE AYUDA
POR EJEMPLO, HAGO LA CARGA DE LA ESTRUCTURA
STRUCT PERSONA{
CHAR NOMBRE[30];
CHAR APELLIDO [30];
INT EDAD;
}
DESPUES ME PIDE QUE INGRESANDO LA EDAD ME MUESTRE TODOS LOS DATOS DE LAS PERSONAS EN EL MAIN(SERIA LO QUE RETORNA LA FUNCION) QUE SON MENORES A LA EDAD INGRESADA.
COMO LO HAGO
LO HICE DE MIL FORMAS Y NO ME SALE
3  Programación / Programación C/C++ / 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);
                                                           }
                                       }
       }
}
4  Programación / Programación C/C++ / que tengo mal con los punteros en c? necesito ayuda! en: 11 Febrero 2013, 14:17 pm
me saltan esto tipos de errores.
[Warning] passing arg 2 of `consulta' from incompatible pointer type
[Warning] passing arg 3 of `consulta' from incompatible pointer type

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

#define MAX 4

struct pel
{
       char codigo [7];
       char titulo [15];
       char autor [25];
       char genero[15];
       int existencia;
       float precio;
};
//llamado a funciones
void carga_datos(struct pel *p, int *contp);
char *consulta(struct pel *p, int *contp, char *pel_bus, char *aut_bus);
void actializar(struct pel *p, int contp, char *cod_act);

main()
{
      struct pel peliculas[MAX];
      char opc,pel_bus[15],aut_bus[25], *cartel,cod_act[7];
      int contp=0, cond=0;
     
     
      do{
          printf("\t Menu de opcines\n");
          printf("1- Cargar datos\n2-Consultas\n3-Actualizar\n4-facturacion\n5-salir\n");
          opc=getch();
          switch(opc)
          {
                     case'1': carga_datos(peliculas, &contp);
                              break;
                     case'2': printf("Ingrese pelicula a buscar\n");
                              scanf("%s", pel_bus);
                              printf("Ingrese Nombre de Autor\n");
                              scanf("%s", aut_bus);
                              cartel= consulta(peliculas, pel_bus,aut_bus, contp);
                              printf("%s\n", cartel);
                              getch();
                              break;
                     case'3': printf("INGRESE CODIGO A ACTUALIZAR\n");
                              scanf("%s", &cod_act);
                              actializar(peliculas, cod_act,contp);
                              getch();
                              break;
                     case'4': cond=1;
                              break;
                     case '5': cond=1;
                     break;
                     default: printf("tecla incorrecta\n");
                     break;
          }
      }while (cond!=1 && opc!=5);
      system ("PAUSE");
      return ;
}

                     
                     
                             
         
     
void carga_datos(struct pel *p, int *contp)
{
     int i=*contp;
     char opc1='s';
     
     while (i<MAX && opc1=='s')
     {
           printf("ingrese codigo\n");fflush(stdin);
           gets(p.codigo);
           printf("Titulo de pelicula:\n"); fflush(stdin);
           gets(p.titulo);
           printf("Autor:\n"); fflush(stdin);
           gets(p.autor);
           printf("genero:\n"); fflush(stdin);
           gets(p.genero);
           printf("Existencia:\n"); fflush(stdin);
           scanf("%d", &p.existencia);
           printf("Precio:\n"); fflush(stdin);
           scanf("%d",&p.precio);
           (*contp)++;
           printf("Desea cargar otro dato (S O N)\n\n");
           opc1=getch();
     }
     if(i==MAX)
     {
               printf("NO HAY MAS MEMORIA DISPONIBLE\n");
     }
     return;
}
5  Programación / Programación C/C++ / ayuda con lenguaje c por favor! en: 8 Febrero 2013, 01:14 am
al ejecutar el programa no me cambia las letras de mayusculas a minusculas o al reves. necesito ayuda. que tengo mal hecho?
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <ctype.h>

void es_vocal(char *txt, int *v);
void transforma (char *txt, int v,int caso );


main()
{
      char texto[100], *txt, opc,t;
      int i=0, contt=0, cond=0,vocal;
     
     
      printf("Cargue un texto menor a 100 caracteres\n");
      printf("control fin de datos\n");
     
      while ((t=getchar())!=EOF)
      {
            texto[contt]=t;
            contt++;
      }
      texto[contt]='\0';
      txt=texto;
      clrscr();
      do
      {
               printf("\t\t menu de opciones\n");
               printf("1-> CONSONANTES DE MINUSCULAS A MAYUSCULAS\n");
               printf("2-> CONSONANTES DE MAYUSCULAS A MINUESCULAS\n");
               printf("3-> SALIR\n");
               opc=getch();
               
               switch(opc)
               {
                          case'1': while(i<contt)
                                   {
                                                       if(isalpha(*txt)>0)
                                                       {
                                                                         es_vocal(txt, &vocal);
                                                                         transforma(txt,vocal,1);
                                                       }
                                                       *txt++;
                                                       i++;
                                   }
                                   
                                                       // MUESTRA
                                                       for(i=0;i<contt;i++)
                                                        {
                                                                           putchar(texto);
                                                        }
                                                                   
                                  break;
                                  case'2':while(i<contt)
                                   {
                                                       if(isalpha(*txt)>0)
                                                       {
                                                                         es_vocal(txt, &vocal);
                                                                         transforma(txt,vocal,2);
                                                       }
                                                       *txt++;
                                                       i++;
                                   }
                                   
                                                       // MUESTRA
                                                       for(i=0;i<contt;i++)
                                                        {
                                                                           putchar(texto);
                                                        }
                                  break;
                                  case'3':cond=1;
                                  break;
                                  default:clrscr();
                                          printf("Opcion incorrecta\nIngrese opcion\n");
                                  break;
               }
      }while(cond!=1 && opc!=3);
system("PAUSE");   
return ;
}

void es_vocal(char *txt, int *v)
{
     switch(*txt)
     {
                case'a':
                case'e':
                case'i':
                case'o':
                case'u':
                case'A':
                case'E':
                case'I':
                case'O':
                case'U':
                *v=1;
                break;
                default: *v=0;
                break;
     }
     
}

                         
void transforma (char *txt, int v,int caso)
{
    switch(caso)
     {
                 case'1':    if((v)==0)
                             {
                                        if(isupper(*txt)<=0)
                                        {
                                          *txt=toupper(*txt);
                                        }
                                        else
                                        *txt=tolower(*txt);
                                       
                             }
                 
                 break;
                 case'2':  if((v)==0)
                             {
                                      if(isupper(*txt)>0)
                                        {
                                                          *txt=tolower(*txt);
                                        }
                                        else
                                        *txt=toupper(*txt);
                             }
                 break;
                 default:
                 break;
                 
     }
     return;
}
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines