Título: Hola, como regresar a una funcion especifica Publicado por: jescel_inf en 19 Noviembre 2012, 19:30 pm les mando mi programa que me pidieron, solo que no se como regresar a la funcion_pide, despues deteminar cada opcion(calculadora,for,while,agenda,mayor)
#include"stdio.h" #include"conio.h" #define CANTIDAD 3 struct alumnos { char nombre[40]; char apellido[40]; int edad; }; /*===================================================================================================================*/ funcion_inicio() { char nombre[50]; clrscr(); printf("\t\t\t Dame tu nombre de usuario\n\n\n\n\n\n\n\n\n\t\t\t\t "); fflush(stdin); gets(nombre); clrscr(); printf("\t\tBienvenido al sistema -%s- \n\n\n", nombre); printf("\t\t\t Elige una opcion:\n\n"); printf("\t\t 1------------>Calculadora\n"); printf("\t\t 2------------>El mayor de 2 numero\n"); printf("\t\t 3------------>Repeticion con while determinado\n"); printf("\t\t por el usuario\n"); printf("\t\t 4------------>Repeticion con for determinado\n"); printf("\t\t por el usuario\n"); printf("\t\t 5------------>Agenda\n"); printf("\t\t 6------------>Salir\n\n\n\t\t\t\t\t"); } /*========================================================================================================================*/ funcion_pide() { int opcion; scanf("%d",&opcion); switch(opcion) { case 1:funcion_calculadora(); break; case 2:funcion_mayor(); break; case 3:funcion_while(); break; case 4:funcion_for(); break; case 5:funcion_agenda(); break; case 6:funcion_salir(); break; } } /*========================================================================================================================*/ funcion_calculadora() { clrscr(); int tipo; float a, b, total; char cont='s'; while (cont !='n') { printf ("Selecciona una de las siguientes opciones:\n"); printf ("1. Suma\n"); printf ("2. Resta\n"); printf ("3. Multiplicacion\n"); printf ("4. Division\n"); printf ("5. Salir\n"); printf ("6. Regresar\n"); scanf ("%i", & tipo); switch (tipo) { case 1: printf ("Escribe los dos numeros que quieres sumar:"); scanf ("%f %f", &a, &b); total=a+b; printf ("El resultado es: %.2f \n",total); a=0; b=0; break; case 2: printf ("Escribe los dos numeros que quieres restar:"); scanf ("%f %f", &a, &b); total=a-b; printf ("El resultado es: %.2f \n", total); a=0; b=0; break; case 3: printf ("Escribe los dos numeros que quieres multiplicar:"); scanf ("%f %f", &a, &b); total=a*b; printf ("El resultado es: %.2f \n", total); a=0; b=0; break; case 4: printf ("Escribe los dos numeros que quieres dividir:"); scanf ("%f %f", &a, &b); total=a/b; printf ("El resultado es: %.2f \n", total); a=0; b=0; break; case 5: exit(0); } } } /*=================================================================*/ funcion_mayor() { clrscr(); int a,b; printf("Dame el primer numero\n"); scanf("%d",&a); printf("Dame el segundo numero\n"); scanf("%d",&b); if (a>b) { printf("%d es mayor que%",a,b); } else{ printf("%d es mayor que%d",b,a);} getch(); } /*========================================*/ funcion_while(){ int contador; int limite; clrscr(); printf( "\n Hasta donde quieres para:r " ); scanf("%d",&limite); contador = 1; /* Inicialización del contador */ while ( contador <= limite ) /* Condición */ { printf( "%d ", contador ); /* Salida */ contador++; /* Incremento del contador */ } getch(); } /*=======================================*/ funcion_for(){ int contador, inicial, final; clrscr(); printf("Donde quieres iniciar\n"); scanf("%d",&inicial); printf("Donde quieres finalizar\n"); scanf("%d",&final); for (contador = inicial; contador<=final; contador++) { printf("\nRepeticion numero %d\n", contador); } getch(); } /*================================================*/ funcion_agenda() { int i=0; struct alumnos alumno[CANTIDAD]; for(i;i<CANTIDAD;i++) { printf("Alumno %d: \n",i+1); printf("Nombre(s):"); fflush(stdin); gets( alumno.nombre); printf("Apellido(s):"); fflush(stdin); gets( alumno.apellido); printf("Edad:"); scanf("%d",&alumno.edad); } for(i=0;i<CANTIDAD;i++) { printf("El alumno es %s %s y su edad es:%d \n", alumno.nombre, alumno.apellido, alumno.edad); } getch(); } /*=========================================*/ funcion_salir(){ exit(0); } /*===========================================*/ main() { funcion_inicio(); funcion_pide(); return(0); } gracias de antemano por poner atencion a mi pregunta :D Título: Re: Hola, como regresar a una funcion especifica Publicado por: rir3760 en 20 Noviembre 2012, 00:01 am Lo primero que debes hacer es evitar el uso de la biblioteca "conio" de Borland, y las funciones "gets" y "fflush(stdin)". Explicaciones a detalle se encuentran en el tema |Lo que no hay que hacer en C/C++. Nivel basico| (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).
En cuanto a tu pregunta debes colocar las llamadas a "funcion_inicio" y "funcion_pide" en la función "main" dentro de un bucle: Código Es un bucle sin salida (un bucle infinito) porque la opción numero seis se encarga de terminar el programa (mediante la llamada a la función "exit"). Un saludo Título: Re: Hola, como regresar a una funcion especifica Publicado por: jescel_inf en 21 Noviembre 2012, 23:54 pm Gracias rir3760 apenas soy nuevo en esto de la programacion, y gracias por lo de fflsuh.
|