Error al compilar

Iniciado por DickGumshoe, 1 Noviembre 2011, 02:24 AM

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

DickGumshoe

¡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:



//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.

rir3760

Me parece que el mensaje de error lo dice todo. Revisa con cuidado el inicio de esa linea:
if{     (
Lo solucionas en cuestion de segundos.

Un saludo
C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language

DickGumshoe

#2
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...


                 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:

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 ^^

satu

Hola

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

Saludos
Breakbeat como forma de vida

DickGumshoe

#4
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...

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!