Foros ZackYFileS

Foros ZackYFileS (http://foros.zackyfiles.com/index.php)
-   PROGRAMACIÓN Lenguajes: Visual Basic, C++, etc (http://foros.zackyfiles.com/forumdisplay.php?f=370)
-   -   Ejercicio C++, ayuda, uso de "Case" (http://foros.zackyfiles.com/showthread.php?t=378680)

Snake12 03/12/2005 18:08

Ejercicio C++, ayuda, uso de "Case"
 
Hola, tengo que hacer un ejercicio para la universidad, que introduciendole el mes y un año, me diga los dias de ese mes, hay q tener en cuenta si el año es bisiesto...todo eso ya está hecho, el problema está en que una vez compilado le meto el año y el dia y no hace nada, es como si entrase en switch pero no hace nada, si alguien me echase una mano, le estaria muy agradecido. A continuación pongo el codigo:

int main()
{
// Zona de Declaración de Variables del Programa principal
unsigned int n;
unsigned int m;

cout << "Introduzca el numero de un mes y un ano cualquiera.";
cout << '\n' << endl;
cout << "Enero -> 1 Febrero -> 2" << endl;
cout << "Marzo -> 3 Abril -> 4" << endl;
cout << "Mayo -> 5 Junio -> 6" << endl;
cout << "Julio -> 7 Agosto -> 8" << endl;
cout << "Septiembre -> 9 Octubre -> 10" << endl;
cout << "Noviembre -> 11 Diciembre -> 12" << endl;
cout << '\n' << endl;
cout << "Ano: ";
cin >> n;
cout << '\n' << endl;
cout << "Mes: ";
cin >> m;
cout << '\n' << endl;


iif ( n % 4 == 0 || n % 400 == 0)
{
switch (m)
{
case '1':
case '3':
case '5':
case '7':
case '8':
case '10':
case '12':
cout << "El mes tiene 31 dias." << endl;
cout << '\n' << endl;
break;

case '2':
cout << "El mes tiene 29 dias." << endl;
cout << '\n' << endl;
break;

case '4':
case '6':
case '9':
case '11':
cout << "El mes tiene 30 dias." << endl;
cout << '\n' << endl;
break;
}
}

if ( n % 4 != 0 && n % 400 != 0)
{
switch (m)
{
case '1':
case '3':
case '5':
case '7':
case '8':
case '10':
case '12':
cout << "El mes tiene 31 dias." << endl;
cout << '\n' << endl;
break;

case '2':
cout << "El mes tiene 28 dias." << endl;
cout << '\n' << endl;
break;

case '4':
case '6':
case '9':
case '11':
cout << "El mes tiene 30 dias." << endl;
cout << '\n' << endl;
break;
}
}

system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.

Snake12 03/12/2005 18:42

Al final encontré el error, despues de case no se pone el valor entre comillas, jejeje. Bueno pongo el codigo corregido por si a alguien le interesa, y si lo compila, puede saber si el año en k nació era bisiesto...jajajaa...

unsigned int n;
unsigned int m;

cout << "Introduzca el numero de un mes y un ano cualquiera.";
cout << '\n' << endl;
cout << "Enero -> 1 Febrero -> 2" << endl;
cout << "Marzo -> 3 Abril -> 4" << endl;
cout << "Mayo -> 5 Junio -> 6" << endl;
cout << "Julio -> 7 Agosto -> 8" << endl;
cout << "Septiembre -> 9 Octubre -> 10" << endl;
cout << "Noviembre -> 11 Diciembre -> 12" << endl;
cout << '\n' << endl;
cout << "Ano: ";
cin >> n;
cout << '\n' << endl;
cout << "Mes: ";
cin >> m;
cout << '\n' << endl;


if ( n % 4 == 0 || n % 400 == 0)
{
switch (m)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
cout << "Ese mes tiene 31 dias." << endl;
cout << '\n' << endl;
break;

case 2:
cout << "Ese mes tiene 29 dias." << endl;
cout << '\n' << endl;
break;

case 4: case 6: case 9: case 11:
cout << "Ese mes tiene 30 dias." << endl;
cout << '\n' << endl;
break;

default:
cout << "No conozco ese mes." << endl;
cout << '\n' << endl;
break;
}
}

if ( n % 4 != 0 && n % 400 != 0)
{
switch (m)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
cout << "Ese mes tiene 31 dias." << endl;
cout << '\n' << endl;
break;

case 2:
cout << "Ese mes tiene 28 dias." << endl;
cout << '\n' << endl;
break;

case 4: case 6: case 9: case 11:
cout << "Ese mes tiene 30 dias." << endl;
cout << '\n' << endl;
break;

default:
cout << "No conozco ese mes." << endl;
cout << '\n' << endl;
break;
}
}

system("Pause"); // Hacer una pausa
return 0; // Valor de retorno al S.O.

Efirenet 03/12/2005 20:51

El código quedaría más elegante si le pones nombres más descriptivos a las variables.

Un saludo


La franja horaria es GMT +2. Ahora son las 19:02.

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
ZackYFileS - Foros de Debate