Tengo una duda al compilar mi programa me marca error en esto

Iniciado por Ivs_mx, 2 Octubre 2012, 03:49 AM

0 Miembros y 1 Visitante están viendo este tema.

Ivs_mx

Hola a todos, alguien podría disipar mi duda a que se debe que me marque el error en esta parte por favor?, se los agradezco mucho y tengan buen día.

He realizado mi programa y cuando lo compilo me señala un error en: int dias=0, mes= 0, año=0;

El desarrollo de mi código ha sido el siguiente:

/*Algoritmo del programa "DiasMes"

/*programa de calificacion.c
* Descripcion: Dado el dia, mes y año despliega un
mensaje
* comparamos el mes con las constantes 1, 2, 3,...12.
* Si mes es 1,3,5,7,8,10 ó 12 asignamos a días el valor 31.
* Si es mes 4,6,9 u 11 asignamos a días el valor 30.
* Si mes es 2, verificaremos si el año es bisiesto, en cuyo caso asignamos a días el valor 29 y si no es bisiesto asignamos a días el valor 28.
* Si mes no es ningún valor de los anteriores enviaremos un mensaje ndicándole que el mes no es válido*/

       #include<stdio.h>
       #include<stdlib.h>
       
       /* Funcion principal*/
       main()
       { /*Inicio de la funcion principal*/
       
             /* Declaracion de variables*/
int dias=0, mes=0, año=0;   En esta parte me detecta el error  :huh:

/*Mensaje de bienvenida*/
              printf("\nEste programa determina el dia, mes y año dado");
printf("Mes (##) : ") ; mes=Leer.datoInt();
printf(" Año (####) : ") ; año=Leer.datoInt();


switch (mes)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
dias=31;
break;

case 4: case 6: case 9: case 11:
dias=30;
break;
case 2:
//¿Es bisiesto?
if ((año % 4= =0) && (año % 100 != 0) || (año % 400= =0))
dias=29
break;
default:
System.out.println("\nEl mes no es válido")
break;
}

if (mes >=1 && mes = 1 && mes


Anvil

\\::_--__!!ss"1122

leosansan

#2
Cita de: Ivs_mx en  2 Octubre 2012, 03:49 AM
Hola a todos, alguien podría disipar mi duda a que se debe que me marque el error en esta parte por favor?, se los agradezco mucho y tengan buen día.
Lo estuve mirando y me pareció mejor así:
#include <stdio.h>

int main()
{
   int num_mes=0,anyo;
   char mes [12][10]={"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"};
   printf("MES =   ");scanf ("%d",&num_mes);
   printf("ANYO =   ");scanf ("%d",&anyo);
   switch (num_mes)
   {
       case 1: case 3: case 5: case 7: case 8: case 10: case 12:
       printf("31 / %s / %d\n" ,mes [num_mes-1],anyo);
       break;
       case 4: case 6: case 9: case 11:
       printf("30 / %s / %d\n" ,mes [num_mes-1],anyo);
       break;
       case 2:
       if (( anyo % 4==0) && (anyo % 100 != 0) || (anyo % 400==0)  )
           printf("29 / %s / %d\n" ,mes [1],anyo);
       else
           printf("28 / %s / %d\n",mes [1],anyo);
       break;
       default:
       printf ("\nEl mes no es valido");
       break;
   }
   return 0;
}

O como tú lo tenías, corregido más o menos:
#include <stdio.h>

int main()
{
    int num_mes=0,anyo;
    printf("MES =   ");scanf ("%d",&num_mes);
    printf("ANYO =   ");scanf ("%d",&anyo);
    switch (num_mes)
    {
        case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        printf("31 / %d / %d\n" ,num_mes,anyo);
        break;
        case 4: case 6: case 9: case 11:
        printf("30 / %d / %d\n" ,num_mes,anyo);
        break;
        case 2:
        if (( anyo % 4==0) && (anyo % 100 != 0) || (anyo % 400==0)  )
            printf("29 / 2 / %d\n" ,anyo);
        else
            printf("28 / 2 / %d\n",anyo);
        break;
        default:
        printf ("\nEl mes no es valido");
        break;
    }
    return 0;
}

Saludos!