Viernes 15 de Noviembre de 2024, 13:30
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Enum Y Switch
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Enum Y Switch (Leído 1196 veces)
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Enum Y Switch
«
en:
Miércoles 21 de Septiembre de 2005, 18:07 »
0
Hola chic@s de SoloCodigo, pues ultimamente no he programado mucho, estoy realmente mal
y pues empeze a volver a cojer C y empeze con unos ejercicios que habian en la web, uno de ellos pedia que segun una fecha que se introduzca calcular la cantidad de dias que han pasado desde el 1 de enero; estoy tratando de hacerla, para muchos de ustedes es pan comido, pero para mi es duro, bueno el caso es que por ayuda de eliza_marti ayer me acorde que con la funcion enum podia meter varias variables con valores diferentes, y pues creo que esta me sirve para dar los valores de los meses, lo que quiero es capturar esos valores, de pronto este mal, para eso pido ayuda, adjunto el código para que vean lo que trato de hacer, solo pido ayuda, no quiero que me muestren el código ya hecho, eso no me gusta me da wacala; aqui va.
Código: Text
#include <stdio.h>
#include <windows.h>
int main(void)
{
enum meses{
enero=31, febrero=28, marzo=31, abril=30, mayo=31, junio=30, julio=31,
agosto=31, septiembre=30, octubre=31, noviembre=30, diciembre=31
};
int iDia, iCalc, iDias, iMes;
char cMes[10];
printf("Digite dia: ");
scanf("%d",&iDia);
printf("Digite mes: ");
scanf("%d",iMes);
switch(iMes)//EN ESTE SWITCH QUIERO SUMAR LOS DIAS DE LOS MESES, PERO
{ //CREO QUE ESTA MAL
case '1': iDias=enero;
break;
case '2': iDias=febrero;
break;
case '3': iDias=marzo;
break;
case '4': iDias=abril;
break;
case '5': iDias=mayo;
break;
case '6': iDias=junio;
break;
case '7': iDias=julio;
break;
case '8': iDias=agosto;
break;
case '9': iDias=septiembre;
break;
case '10': iDias=octubre;
break;
case '11': iDias=noviembre;
break;
case '12': iDias=diciembre;
break;
}
printf("%s - %d",cMes,iDia);
Sleep(2000);
}
Tweet
El pasado son solo recuerdos, el futuro son solo sueños
shakka
Miembro HIPER activo
Mensajes: 679
Nacionalidad:
Re: Enum Y Switch
«
Respuesta #1 en:
Miércoles 21 de Septiembre de 2005, 20:46 »
0
ahorita no tengo en que correrlo pero a simple vista ...
Citar
printf("Digite mes: ");
scanf("%d",iMes);
te falta guardar la variable scanf("%d",
&
iMes);
blog
http://blog.mbrenes.com
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Enum Y Switch
«
Respuesta #2 en:
Miércoles 21 de Septiembre de 2005, 21:58 »
0
No es eso mi querido mbrenes, yo tampoco si quiera lo he compilado, pero gracias por el error, lo que quiero es hacer una suma de los dias.
El pasado son solo recuerdos, el futuro son solo sueños
shakka
Miembro HIPER activo
Mensajes: 679
Nacionalidad:
Re: Enum Y Switch
«
Respuesta #3 en:
Miércoles 21 de Septiembre de 2005, 22:52 »
0
puedes usar un arreglo en lugar de el enumerado:
int meses[11];
meses[ 0]=31;//Enero
meses[ 1]=28;//Febrero
...
meses[11]=31;//Diciembre
para calcular la cantidad de dias entre el 1 de Ene hasta fecha digitada por el usuario:
Código: Text
int tdias=0;
int c=0; //contador
while (c<=iMes)
{
tdias=tdias+meses[c];
c++;
};
printf("total dias hasta la fecha: %d",tdias);
pruebalo a ver
blog
http://blog.mbrenes.com
RadicalEd
Moderador
Mensajes: 2430
Nacionalidad:
Re: Enum Y Switch
«
Respuesta #4 en:
Miércoles 21 de Septiembre de 2005, 23:10 »
0
mbrenes si asi era la mejor opcion, mira como lo deje, solo le modifique una pequeña anomalia, pero de resto todo queda super.
Código: Text
#include <stdio.h>
#include <windows.h>
int main(void)
{
int tdias=0, meses[12], c, iDia, iMes;
meses[0]=31;
meses[1]=28;
meses[2]=31;
meses[3]=30;
meses[4]=31;
meses[5]=30;
meses[6]=31;
meses[7]=31;
meses[8]=30;
meses[9]=31;
meses[10]=30;
meses[11]=31;
printf("Digite dia: ");
scanf("%d",&iDia);
printf("Digite mes: ");
scanf("%d",&iMes);
for(c=0;c<=iMes-1;c++)
{
tdias=tdias+meses[c];
}
printf("total dias hasta la fecha: %d",tdias);
Sleep(2000);
}
//MUCHISIMO MAS CORTO.
El pasado son solo recuerdos, el futuro son solo sueños
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Enum Y Switch