12/10/2014, 11:59
|
| | | Fecha de Ingreso: mayo-2012 Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años, 7 meses Puntos: 49 | |
Respuesta: Introducir mes y mostrar numero dias en C Cita:
Iniciado por HackID1 Lo del Return(1) o (0) no lo entendí muy bien cuando empece con esto :( .
Y la respuesta la he intentado asimilar así pero sigue mostrando el error en el número de días del mes.
Código C:
Ver original#include <stdio.h> int main() { char *meses[] = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"}; char mes[12]; int dias_meses[12] = {31,28,31,30,31,30,31,31,30,31,30,31}; int i ; printf("Introduzca el nombre del mes: "); for (i=0; i<12; i++) { if ( strcmp ( mes , meses ) == 0 ) break; } /******* ESTO ES FUNDAMENTAL **/ if ( i == 12 ) puts ( "Mes incorrecto" ) ; else printf("Mes %s tiene %d dias.", mes , dias_meses [i ] ); return (0); }
No entiendo para que la comparación if( i == 12) por eso la he quitado, si me puedes explicar un poco.
............................... La comparación es fundamental. Si sólo pones el printf, como tenías, si el mes es incorrecto al llegar al printf imprimirá "basura" ya que te habrás "salido" del array ya que este sólo llega hasta once y el valor es indicativo de que recorrió todo el array y no hubo coincidencia alguna.
Y aprovecho para darle otro fuerte abrazo al amigo Daniel, parece que nos unimos todos en este foro.
Y respecto a lo que propones para años bisiestos o no yo sería partidario de usar un solo array y al averiguar si es o no bisiesto definir el valor dias_meses[1].
Algo como:
Código C++:
Ver originalif ( anyo == bisiesto ) dias_meses[1] = 29 else dias_meses[1] = 28
¡¡¡Saluditos!!!
Última edición por leosansan; 12/10/2014 a las 12:08 |