Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Naslednik en 20 Abril 2015, 02:50 am



Título: Else if en programacion en C ayuda :-\ -- solucionado, gracias;
Publicado por: Naslednik en 20 Abril 2015, 02:50 am
hola gente, tengo un problema con el comando else if, no estoy muy seguro como funciona  :-\
en teoria el codigo escrito está bien, pero en "build messages" (errores de codigo) me pone
Citar
 24 error: 'else' without a previous 'if'
  27 error: 'else' without a previous 'if'

pero poner un 'if' antes de un 'else' seria volver a crear toda una cadena de 'if'...
y yo solo quiero corregir mi codigo para compilarlo y ejecutarlo =/

que hice mal?, será algo del compilador que no tiene el comando else if?? la libreria stdio.h es la que tengo que utilizar??

aqui abajo dejo el codigo de mi programa.

Citar
#include <stdio.h>

main () {
float i, v, r, a, b, c;

printf("calculadora ley de ohm \t\t(Si no tienes un valor pon 0)");
printf("\n\nIntensidad:\t 0\nVoltaje:\t 0\nResistencia:\t 0\n\n");

printf("Intensidad? \n");
scanf("%f", &i);

printf("Voltaje? \n");
scanf("%f", &v);

printf("resistencia? \n");
scanf("%f", &r);

printf("\n\nIntensidad:\t %.2f\nVoltaje:\t %.2f\nResistencia:\t %.2f\n", i, v, r);

a=v/r;
if (i=0)  printf("intensidad: %.2f", a);

b=i*r;
else if (v=0) printf("Voltaje: %.2f", b);

c=v/i;
else if (r=0) printf("resistencia: %.2f", c);

else printf("lo siento, no puedo calcularlo");

getchar();
getchar();

return 0;
}

gracias de antemano por su ayuda =)

-------------------------------------------

moderadores, me acabo de dar cuenta de que hay un subtema de C/C++, borro este tema y lo reabro en ese subtema?, lo mueven ustedes?? o lo dejo tal cual y si me surge otra duda la consulto en dicho subtema?? gracias y perdón por las molestias =)


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: engel lex en 20 Abril 2015, 03:01 am
Código:
-> inicio if ->if (i=0) printf("intensidad: %.2f", a);<-fin if

b=i*r; <-linea fuera del if

else huerfano-> else if (v=0) printf("Voltaje: %.2f", b);

Código
  1. if(condicion){
  2.  accion_en_if();
  3.  variable_en_if=algo;
  4. }else{
  5.  accion_en_else();
  6. }


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: DarK_FirefoX en 20 Abril 2015, 03:05 am
El problema es que estás haciendo:

Código
  1. if (i=0)  printf("intensidad: %.2f", a);
  2. b=i*r; //<<<--- Linea fuera del if
  3. else if (v=0) printf("Voltaje: %.2f", b);
  4.  

Si te das cuenta, entre la sentencia del if y el else if tienes dos lineas de código que no están encerradas entre {}, por lo tanto solo:

Código
  1. printf("intensidad: %.2f", a);

Se ejecutara cuando se cumpla la condición del if, luego ejecutará:

Código
  1. b=i*r;

Y por lo tanto el else if no formara parte de nada.

Si

Código
  1. b=i*r;


se supone que ejecute si se cumple la condición deberías haber dicho:

Código
  1. if (i=0)
  2. {
  3. printf("intensidad: %.2f", a);
  4. b=i*r;
  5. }
  6. else if (v=0) printf("Voltaje: %.2f", b);
  7.  

Ese error lo cometes en diferentes partes.

Te explico el if else if funciona así:

Código
  1. if(condición1)
  2. {
  3. //Linea1 que se ejecutan si se cumple la condición1
  4. //Linea2 que se ejecutan si se cumple la condición1
  5. //...
  6. }
  7. else if(condición2)
  8. {
  9. //Linea3 que se ejecutan si no se cumple la condición1 y se cumple la condición2
  10. //Linea4 que se ejecutan si no se cumple la condición1 y se cumple la condición2
  11. //...
  12. }

Salu2s


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: Naslednik en 20 Abril 2015, 03:18 am
ah...  :D ahora me funciona!!

que denante tuve un problema por dejar el calculo muy lejos de las variables, así que decidí dejarlo lo mas cerca del punto donde se necesitase xD y sin querer deje unos 'else huerfanos'  :P

así está mi codigo ahora y me lo compila y ejecuta :3 gracias chicos!!

Citar
a=v/r; b=i*r; c=v/i;
if (i=0)  printf("intensidad: %.2f", a);

else if (v=0) printf("Voltaje: %.2f", b);

else if (r=0) printf("resistencia: %.2f", c);

else printf("lo siento, no puedo calcularlo");

claro que sigo sin poder hacer que haga lo que yo quiero, pero ya me voy a cabecear para que me salga y si me encuentro con alún otro problema y no le encuentro la solucion, ya preguntaré.  :)


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: engel lex en 20 Abril 2015, 03:21 am
usa corchetes con los if... el programa será igual a nivel ensamblador, pero será muchisimo más legible y evitarás esos errores causados por falta de corchetes


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: Naslednik en 20 Abril 2015, 03:24 am
y en cuanto al subforo al cual tengo que preguntar... sigo preguntando aqui o me voy al subforo que le corresponde?? (C/C++)


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: engel lex en 20 Abril 2015, 03:27 am
esto corresponde a c++, ya fue movido


Título: Re: Else if en programacion en C ayuda :-\
Publicado por: Naslednik en 20 Abril 2015, 03:28 am
gracias =)