hola! ps me gustaria un poko de orientacion tengo este programa el usuario introduce un dia O un mes, luego introduce un numero entero N, y el programa debe de calcula el dia o mes correspondiente a N días o meses despues. Mi programa lo logra pero cuando introduces un numero que sobrepase el rango de dias o meses no imprime nada ¿Podrian ayudarme a solucionar esto?
//Bibliotecas
#include <stdio.h>
#include <conio.h>
#include <string.h>
//Constantes
#define MESES 12
#define DIAS 7
//Tipos
typedef TaDias[DIAS];
typedef TaMes[MESES];
//Prototipos
void Dia(char *sDia1, int eDia);
void Mes();
//Programa Principal
void main () {
//Variables
int eOpc, eDia, eMes;
char *sDia1;
//Inicio
do {
clrscr();
printf ("\nIntroduce una opci¢n\n");
printf ("1. DIA\n2. MES\n3. SALIR\n\n");
scanf ("%d", &eOpc);
switch (eOpc) {
case 1: printf ("\nIntroduce un d¡a de la semana: ");
scanf ("%s", sDia1);
sDia1 = strupr (sDia1);
printf ("Introduce un n£mero entero: ");
scanf ("%d", &eDia);
Dia(sDia1, eDia);
break;
case 2:
Mes();
break;
case 3: printf ("Fin del programa");
break;
}
} while (eOpc != 3);
getch();
}
void Dia (char *sDia1, int eDia) {
//Variables
int eTemp;
char *sDias[7]= {"LUNES",
"MARTES",
"MIERCOLES",
"JUEVES",
"VIERNES",
"SABADO",
"DOMINGO" };
//Inicio
for (eTemp = 0; eTemp < MESES; eTemp++) {
if (strcmp (sDia1, sDias[eTemp]) == 0) {
eDia += eTemp;
printf ("Despues de %d d¡as ser* %s\n", eDia, sDias[eDia]);
}
}
getch();
} //Fin Procedimiento Dia
//Procedimiento Mes
void Mes () {
//Variables
int eMes, eTemp;
char *sMes1;
char *sMes[] = {"ENERO",
"FEBRERO",
"MARZO",
"ABRIL",
"MAYO",
"JUNIO",
"JULIO",
"AGOSTO",
"SEPTIEMBRE",
"OCTUBRE",
"NOVIEMBRE",
"DICIEMBRE" };
//Inicio
printf ("\nIntroduce un mes: ");
scanf("%s", sMes1);
sMes1 = strupr (sMes1);
printf ("Introduce un n£mero entero: ");
scanf ("%d", &eMes);
for (eTemp = 0; eTemp <= MESES; eTemp++) {
if (strcmp (sMes1, sMes[eTemp]) == 0) {
eMes += eTemp;
printf ("Despues de %d meses ser* %s\n", eMes, sMes[eMes]);
}
}
getch();
} //Fin Procedimiento Mes