Ayuda con un problema.

Iniciado por Onigiri, 1 Octubre 2012, 18:57 PM

0 Miembros y 3 Visitantes están viendo este tema.

Onigiri

Hola;
tengo un problema que sinceramente
no entiendo como resolver.
Dice así.

Se lee de una fecha el numero del día (1 a 31) y el numero del mes (1 a 12). Informar la fecha del día siguiente del modo: numero del día y nombre del mes. Suponiendo Febrero siempre con 28 días.
:D

Stakewinner00

supongo que lo que quieren es k hagas algo como

2/01 pues que tu programa diga 3 de Enero

Onigiri

Exacto pero teniendo en cuenta;
los meses con 31, y 30 días.
Sinceramente estoy teniendo problemas
con el desarrollo de mi algoritmo.
Estoy empezando con  la sentencia switch.

Caster

Pues vete posteando aqui lo que tengas hecho para que podamos ayudarte mejor.

Saludos

Onigiri

Bien
pues lo que hice hasta el momento fue
ésto

Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
main()
{int d, m, nx;

cout<<"\nIngresar dia = ";
cin>>d;
cout<<"\nIngresar mes = ";
cin>>m;

nx=d+1;

if (nx>=31)
   {cout<<"\nEs el "<<d<<" del "<<m;}
else
  if (nx==28)
    {cout<<"\nEs el 1 de Marzo";}
if (nx==29)
    {cout<<"\nEs el 1 de "<<m;}

getch();
}


Pero no me imprime; además que no se como aplicar el switch aquí.
anteriormente tuve un problema similar
que lo pude hacer

Código (cpp) [Seleccionar]
#include <conio.h>
#include <iostream.h>
main()
{int n;
cout<<"\nOprime un nro. para empezar = ";
cin>>n;

switch (n){
case 1: cout<<"Es domingo";
break;
case 2: cout<<"Es Lunes";
break;
case 3: cout<<"Es Martes";
break;
case 4: cout<<"Es miercoles";
break;
case 5: cout<<"Es jueves";
break;
case 6: cout<<"Es viernes";
break;
case 7: cout<<"Es sabado";
break;
}

if ((n<=0||n>=8))
cout<<"ERROR";
getch();
}


Pero; este ya no.
Me gustaría saber si dentro del "case 1: (..)"
puedo adherir alguna variable o algo para que
pueda decir con letras el resultado final.

Ej: Introducir el día = 28
Introducir mes = 2.

escribe "Es el 1 de Marzo".

leosansan

#5
Cita de: Onigiri en  1 Octubre 2012, 18:57 PM
Se lee de una fecha el numero del día (1 a 31) y el numero del mes (1 a 12). Informar la fecha del día siguiente del modo: numero del día y nombre del mes. Suponiendo Febrero siempre con 28 días.

Como no es plan de dártelo todo hecho, aquí tienes un código básico que hace lo que quieres. No creo que tengas mayor problema en pasarlo a C++, printf y scanf por cout y cin, y poco más. Deberías "enriquecerlo" para cuando entren número de día o de mes fuera de rango. Es lo que me ha salido a bote pronto, supongo que si lo piensas un poco más podrás abreviarlo:
#include <stdio.h>

int main()
{
   int i,dia,mes_;
   char mes [12][10]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"};

   printf("DIA =   ");scanf ("%d%*c",&dia);
   printf("MES =   ");scanf ("%d%*c",&i);
   if (dia==31 && (i == 1 ||  i ==3 || i ==5 || i ==7 || i ==8 || i ==10 ) )
       printf("1 / %s\n" ,mes [i]);
   else if (dia==30 && (i == 4 || i ==6 || i ==9 || i ==11  ) )
       printf("1 / %s\n" ,mes [i]);
   else if (dia==31 && i == 12  )
       printf("1 / %s\n" ,mes [0]);
   else if (dia==28 && i == 2  )
       printf("1 / %s\n" ,mes [2]);
   else
       printf("%d / %s\n",dia+1,mes [i-1]);
   return 0;
}

Onigiri

Muchas gracias por su
ayuda!
ahora lo estoy haciendo :3