¡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.
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
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 ^^
Hola
Te sobra la llave que tienes justo después del if. Tu tienes
if { (....) {
y debería ser
if (.....) {
Saludos
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!