Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - samsums91

#1
Hola, de nuevo. Escribo este post para ver si me pueden ayudar en estos dos problemas. Bien, comencemos por el primero: necesito generar un listado un listados de años de bisiestos, es decir me piden que a partir del año 1900 y hasta un año, a ingresar por el usuario, se impriman un listado con todos los años bisiestos que han transcurrido.


     /*  printf("Introduzca el año en el que nos encontramos\n");
         scanf("%d", &numero);


         do{
            resultado=serieA (numero);
       
             printf("%d\n",resultado);
}
         while(resultado<numero);


Este es el trozo de codigo que he hecho, por supuesto las variables y funciones estan bien declaras etc etc(no las incluyo para que asi esto no sea demasiado largo. Añado que dentro funcion serieA (numero);, hay otra funcion llamada bisiesto(n); que calcula el año bisiesto(la cual funciona bien, por ella no hay problema).

Dicho esto mi pregunta es: ¿como debo estructurar este programa para que me imprima los años bisiestos desde el 1900 al año que yo quiera? Y, ¿ como deberia hacer la funcion serieA(); que la que me de dar pie a este programa?

Y aprovecho para preguntar esta duda (mucho mas corta) y asi no hacer dos teas para nada: he crreado otro programa que hace un juego de cara o cruz jugando al doble o nada:



                     i=1;
                   
               
                     printf("\nSi sale Cara ganas el Doble si sale Cruz lo pierdes Todo\n");
                     
                 
                      printf("\nIntroduce la cantidad a Apostar :  ");
                        scanf("%d",&numero);
                     

                    do{
                     resultado=generar();
                       
                   
                      switch(resultado){
                         case 0:
                            total=0;
                  printf("\nLo Siento ha perdido Todo, Su cantidad es : 0\n\n ");
                         
                            break;
                         
                         case 1:
                             i=i*2;
                             total=numero*i;
                  printf("\nEnorabuena, su Cantidad es : %.2f\n\n ",total);
                              break;
                     
}                       printf("Si desea seguir apostando pulse 1, en caso contrario pulse 0\n");
                        scanf("%d",&opcion);
                         
                    }while(opcion!=0);

                 
                          break;

}


La funcion resultado=generar(); me genera 1 o 0 segun sea cara cruz y hace que si ganes o pierdas te pregunte si quieres jugar otra vez con la cantidad total ganada( si has ganado la primera vez apostando 2 la segunda jugaras con cuatro, es decir con todo lo ganado). Quisiera hacer que al perder y al elegir volver a jugar te diese la opcion de volver a introducir una cantidad como al principio, ya que ganas pierdes y vuelves a ganar en la tercera apuesta sigue apostando lo total ganado, es decir si auesto 2, gano y tengo 4, pierdo en la siguiente apuesta si continuo jugando vuelve a apostar 4, y mi intencion y rebanamiento de sesos durante mucho tiempo ha sido que vuelva a pedirte una cantidad a apostar. He probrado con estructuras do while pero no lo he encontrado el punto exacto.

Perdonen que sea tan extenso pero queria explicarme bien, llevo dos dias intentando solucionar estos problemas y nada!

Gracias por adelantado!!
#2
Programación C/C++ / Duda llamar funciones
9 Enero 2013, 21:27 PM
Hola, lo primero saludarles por primera vez ya que me acabo de registrar. Lo segundo decidles que procurare no cagarla con las normas del foro.

Bueno pues al lio: estoy haciendo una practica en la que me obligan a hacer un menu mediante un switch e invocar distintas funciones que he tenido que crear yo mismo. Tras largo tiempo tiempo pensando he decidio preguntar por aqui cua es mi error (errores mas bien) en este codigo:

#include<stdio.h>
int factorial(int n);

int main (void){

void menu();

}



void menu(){

int opcion;

printf( "Marque la opción que prefiera\n");
printf( "0 Salir del programa\n");
printf( "1 Calcular el factorial de una número\n");
printf( "2 Comprobar si un número es primo\n");
printf( "3 Calcular el mínimo común múltiplo\n");
printf( "4 Calcular el máximo común divisor\n");
printf( "5 Determinar si un año es bisiesto\n");
printf( "6 Mostrar los años bisiestos\n");
printf( "7 Mostrar número de dias de un mes y año\n");
printf( "8 Calcular números combinatorios\n");
printf( "9 Operar números racionales\n");
printf( "10 Jugar al doble o nada\n");
***(solo les pido ayuda la opcion 1 porque las demas son de igual manera)
scanf("%d",&opcion);



switch (opcion){

   

   case 1:
       
     int numero, resultado;
       printf("Introduzca el número");
        scanf("%d", &n);
        resultado = factorial(n);
      printf("El factorial de %d es %d", numero, resultado);
       
       return 0;

      break;



     default:
       printf("Válido\n");

}




int factorial(int n){
if(n > 1)
return n * factorial(n-1);
return 1;

}


No hace falta decir que esta mal, pero no consigo ver y resolver el problema, se que no gacen tarea de los demas pero si me guian sobre esta las otras nueve invocaciones seran mas sencillas dado que son del mismo tipo y dificultad.

Por cierto pra matar dos pajaros de un tiro: ¿como puedo invocar una funcion dentro de otra funcion para despues invocarla en main?

MUchas gracias y espero haberme explicado medianamente bien, saludos y gracias de ante mano.