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


 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Calcular días que quedan hasta final de año
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Calcular días que quedan hasta final de año  (Leído 4,145 veces)
DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Calcular días que quedan hasta final de año
« en: 15 Enero 2012, 18:57 »

Hola.

Estoy practicando con ejercicios de arrays, y estaba haciendo uno en el que tengo que
hacer un array en el que inserto el número de días que tiene cada mes. A partir de ahí, le pido al usuario que inserte una fecha (sólo día y mes). Entonces, tengo que averiguar cuántos días quedan hasta final de año.

Mi código es:

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main(){
  5.  
  6.  
  7.    int n,i,x,d,suma,transcurridos,restantes;
  8.    int dias[12]={31,28,31,30,31,30,31,31,30,31,30,31};
  9.  
  10.    printf("Elige un dia del 1 al 31");
  11.    scanf("%d",&d);
  12.  
  13.    do{
  14.    printf("Elige un mes del 1 al 12");
  15.    scanf("%d",&n);
  16.    }
  17.    while(n<1||n>12);
  18.  
  19.  
  20.  
  21.    for(i=0;i<n;i++);
  22.  
  23.    transcurridos+=dias[n-1];
  24.    transcurridos+=d;
  25.    restantes=365-transcurridos;
  26.  
  27.    printf("Dias restantes: %d",restantes);
  28.  
  29.    system("pause");
  30.    return 0;
  31. }

Sé que mi problema está al plantear el bucle for (de hecho, lo que tengo en el bucle for no lo he enlazado con las instrucciones de debajo)...

Muchas gracias.

Saludos.



En línea

bdoX

Desconectado Desconectado

Mensajes: 35



Ver Perfil
Re: Calcular días que quedan hasta final de año
« Respuesta #1 en: 15 Enero 2012, 20:14 »

Te arreglé un poco el codigo. Pero vas a tener que validar otras cosas, como por ejemplo. que cuando te pida el dia. colocas dia 30, despues te pide el mes, y colocas por ejemplo el mes 2, que quiere decir el mes de febrero que tiene 28 dias, tiene que indicarte un error, que te vuelva a pedir el dato. Eso es trabajo tuyo, no es dificil de arreglar ese detalle.

Código
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3.  
  4. int main ()
  5. {
  6.    int n, d, i, transcurridos, restantes;
  7.    int dias[] = {
  8.        31, 28, 31, 30,
  9.        31, 30, 31, 31,
  10.        30, 31, 30, 31
  11.    };
  12.  
  13.    /*inicialiso los valores para hacer operaciones aritmeticas*/
  14.    transcurridos = 0;
  15.    restantes     = 0;
  16.  
  17.    do
  18.    {
  19.        printf ( "Elige un dia del 1 al 31: " );
  20.        scanf ( "%d", &d );
  21.    } while ( d < 1 || d > 31 );
  22.  
  23.    do
  24.    {
  25.        printf ( "Elige un mes del 1 al 12: " );
  26.        scanf ( "%d", &n );
  27.    } while ( n < 1 || n > 12 );
  28.  
  29.    /*sumo hasta el mes anterior y le sumo la cantidad de dias
  30.     transcurridos*/
  31.    for ( i = 0; i < (n - 1); i++ )
  32.    {
  33.        transcurridos += dias[i];// No existe el dia cero
  34.    }
  35.  
  36.    transcurridos += d;
  37.    restantes = (365 - transcurridos);
  38.  
  39.    printf ( "Dias restantes: %d\n", restantes );
  40.    system ( "pause>nul" );
  41.  
  42.    return 0;
  43. }
  44.  
  45.  

saludos!


En línea

DickGumshoe


Desconectado Desconectado

Mensajes: 480



Ver Perfil WWW
Re: Calcular días que quedan hasta final de año
« Respuesta #2 en: 15 Enero 2012, 20:59 »

¡Muchas gracias!

Me ha quedado muy claro, y ya he terminado el bucle do-while que faltaba.

Muchas gracias.

Saludos.
En línea

bdoX

Desconectado Desconectado

Mensajes: 35



Ver Perfil
Re: Calcular días que quedan hasta final de año
« Respuesta #3 en: 16 Enero 2012, 00:24 »

Que bueno que te haya servido mi ayuda!

saludOS
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines