Dudas imprimir listado y doble o nada continuo

Iniciado por samsums91, 12 Enero 2013, 14:50 PM

0 Miembros y 1 Visitante están viendo este tema.

samsums91

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!!

leosansan

#1
Para el primer caso creo que te valdrá:
Código (cpp) [Seleccionar]
int i,bisiestos=0,START=1900,END;
printf("Introduzca el a\xA4o en el que nos encontramos: ");
scanf("%d", &END);
for ( i=START;i<=END ;i+=4 )
if  (i%4 ==0 && i%100!=0 ||  (i%400==0))
   bisiestos++;
printf("Hay %d a\xA4os bisiestos entre %d y %d", bisiestos, START, END);

Y para el segundo caso creo que bastaría con incluir :
Código (cpp) [Seleccionar]
if (total==0) {
printf("\nIntroduce la cantidad a Apostar :  ");
                       scanf("%d",&numero);
}

dentro del do.
Saluditos!.