|
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; }
|
|
|
|
|
|
|