Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DickGumshoe en 1 Noviembre 2011, 02:24 am



Título: Error al compilar
Publicado por: DickGumshoe en 1 Noviembre 2011, 02:24 am
¡Hola!

Estaba haciendo un pequeño programa; el cual debe calcularme el mes, día, hora, minuto y segundo que será si le sumo 1 segundo (y posteriormente, le añadiré los años).

Tengo todo terminado, pero al compilar me da el error "expected ´(´ before ´{´ token (línea 48; la dejaré anotada al poner el código).

Bueno, el código es:

Código:

//programa para sumar un segundo a los segundos, minutos, horas, dias, meses y años

#include <stdio.h>
#include <stdlib.h>



int main (void){
   
    int me, d, h, m, s;
   
    printf("\n Escribe el numero del mes");
    scanf("%d",&me);
   
    printf("\n Escribe los dias");
    scanf("%d",&d);
   
    printf("\n Escribe las horas");
    scanf("%d",&h);
   
    printf("\n Escribe los minutos");
    scanf("%d",&m);
   
    printf("\n Escribe los segundos");
    scanf("%d",&s);
   
   
    printf("\n");
   
    if (s!=59){
      s=s+1;
      }
      else{
        if(m!=59){
                  m=m+1;
                  s=0;
                  }
        else{
        if(h!=23){
        h=h+1;
        m=0;
        s=0;
        }
         
       
         
           
        else{     
   //ESTA LÍNEA ES LA QUE DA ERROR             if{     (((me=1)||(me=3)||(me=5)||(me=7)||(me=8)||(me=10)||(me=12))&(d!=31)){                       
                 me=me+1;
                 d=0;
                 h=0;
                 m=0;
                 s=0;}
                 
             else{
                 me=me;
                 d=d+1;
                 h=0;
                 m=0;
                 s=0;}
                 
               
                 
               
                 else{if (((me==4)||(me==6)||(me==9)||(me==11))&(d==30))){
                 me=me+1;
                 d=0;
                 h=0;
                 m=0;
                 s=0;}
                 
                 else{
                 me=me;
                 d=d+1;
                 h=0;
                 m=0;
                 s=0;}
                     
                         
                         
                         }
                 
                 }
                 
                         }
                         }                   
                     
        }
     
     
       
      printf("Los meses, las horas, los minutos y los segundos un segundo despues son  %d mes %d dias %d h %d min %d s \n", me,d,h,m,s);
       
   
    system("pause");
}

Por favor, ¿alguien podría ayudarme?

Muchísimas gracias.


Título: Re: Error al compilar
Publicado por: rir3760 en 1 Noviembre 2011, 02:51 am
Me parece que el mensaje de error lo dice todo. Revisa con cuidado el inicio de esa linea:
Código
  1. if{     (
Lo solucionas en cuestion de segundos.

Un saludo


Título: Re: Error al compilar
Publicado por: DickGumshoe en 1 Noviembre 2011, 10:28 am
Ah, ese paréntesis lo puse porque no me salía, y estaba probando varias opciones; pero incluso poniendo en esa línea un, dos, tres o ningún paréntesis, me da el mismo error...

Código:
                  else{ 
      //AQUÍ ERROR                  if{        ((me==1)||(me==3)||(me==5)||(me==7)||(me==8)||(me==10)||(me==12)&(d!=31)){                          
                 me=me+1;
                 d=0;
                 h=0;
                 m=0;
                 s=0;}

Y así también me sigue dando error:

Código:
 else{ 
                        if{        (me==1)||(me==3)||(me==5)||(me==7)||(me==8)||(me==10)||(me==12))&(d!=31){                          
                 me=me+1;
                 d=0;
                 h=0;
                 m=0;
                 s=0;}

(Aunque lo que sé que en realidad es correcto es el primer código que he puesto en este mismo mensaje, ya que abro el primer paréntesis para todo el if{, el segundo para englobar a me==1, ya empiezo a abrir paréntesis dentro del if, pero todos los cierro, y por último, cierro el paréntesis de d!=31 y el paréntesis del if...

Pero muchísimas gracias por responderme ^^


Título: Re: Error al compilar
Publicado por: satu en 1 Noviembre 2011, 12:00 pm
Hola

Te sobra la llave que tienes justo después del if. Tu tienes
if  { (....) {
y debería ser
if (.....) {

Saludos


Título: Re: Error al compilar
Publicado por: DickGumshoe en 1 Noviembre 2011, 12:14 pm
Ah, ¡muchísimas gracias! Ya ese error no me sale. No me había dado cuenta de que le había metido uno ahí...

Ahora me da otro error más para abajo...

Código:
 else{
                 me=me;
                 d=d+1;
                 h=0;
                 m=0;
                 s=0;
                 }
                
              
                
                
         //AQUÍ ERROR        else{ if ((me==4||me==6||me==9||me==11)&(d==30)){
                 me=me+1;
                 d=0;
                 h=0;
                 m=0;
                 s=0;
                 }

El error dice que es " expected primary-expression before "else" " expected `;' before "else" "

Muchas gracias!

Saludos

EDITO


Ya me ha salido esto último por mí mismo; muchas gracias a todos!