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:
#include <stdlib.h>
#include <stdio.h>
int main(){
int n,i,x,d,suma,transcurridos,restantes;
int dias[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("Elige un dia del 1 al 31");
scanf("%d",&d);
do{
printf("Elige un mes del 1 al 12");
scanf("%d",&n);
}
while(n<1||n>12);
for(i=0;i<n;i++);
transcurridos+=dias[n-1];
transcurridos+=d;
restantes=365-transcurridos;
printf("Dias restantes: %d",restantes);
system("pause");
return 0;
}
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.
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.
#include <stdlib.h>
#include <stdio.h>
int main ()
{
int n, d, i, transcurridos, restantes;
int dias[] = {
31, 28, 31, 30,
31, 30, 31, 31,
30, 31, 30, 31
};
/*inicialiso los valores para hacer operaciones aritmeticas*/
transcurridos = 0;
restantes = 0;
do
{
printf ( "Elige un dia del 1 al 31: " );
scanf ( "%d", &d );
} while ( d < 1 || d > 31 );
do
{
printf ( "Elige un mes del 1 al 12: " );
scanf ( "%d", &n );
} while ( n < 1 || n > 12 );
/*sumo hasta el mes anterior y le sumo la cantidad de dias
transcurridos*/
for ( i = 0; i < (n - 1); i++ )
{
transcurridos += dias[i];// No existe el dia cero
}
transcurridos += d;
restantes = (365 - transcurridos);
printf ( "Dias restantes: %d\n", restantes );
system ( "pause>nul" );
return 0;
}
saludos!
¡Muchas gracias!
Me ha quedado muy claro, y ya he terminado el bucle do-while que faltaba.
Muchas gracias.
Saludos.
Que bueno que te haya servido mi ayuda!
saludOS