Foros del Web » Programación para mayores de 30 ;) » C/C++ »

sentencia "if"

Estas en el tema de sentencia "if" en el foro de C/C++ en Foros del Web. wenas......alguien podria decirme porque esta mal esto (se trata de un programa que te calcula el valor de la resistencia equivalente a tres resistencias que ...
  #1 (permalink)  
Antiguo 14/08/2009, 02:26
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
sentencia "if"

wenas......alguien podria decirme porque esta mal esto (se trata de un programa que te calcula el valor de la resistencia equivalente a tres resistencias que pueden estar en serie, en paralelo, o dos en paralelo que estan en serie con la tercera....la forma en que estan colocadas las resistencias dependerá del caracter (s,p,x) q introduzca el usuario) :

#include <stdio.h>

int main (void)
{
float r1,r2,r3,requiv;
char estruct;

printf("\nIntroduce la primera resistencia: ");
scanf("%f",&r1);

printf("\nIntroduce la segunda resistencia: ");
scanf("%f",&r2);

printf("\nIntroduce la tercera resistencia: ");
scanf("%f",&r3);

printf("\nComo estan estas colocadas?\n serie s,paralelo p,serie-paralelo x: ");
scanf("%c",&estruct);

if(estruct=='S'){
requiv=r1+r2+r3;
printf("\nLa resistencia equivalente es: %f",requiv);
}else{
if(estruct=='P'){
requiv=(1/r1)+(1/r2)+(1/r3);
printf("\nLa resistencia equivalente es: %f",requiv);
}else{
requiv=((r1*r2)/(r1+r2))+r3;
printf("\nLa resistencia equivalente es: %f",requiv);
}
}
}

Última edición por gacristof; 14/08/2009 a las 02:35
  #2 (permalink)  
Antiguo 14/08/2009, 05:14
 
Fecha de Ingreso: diciembre-2008
Ubicación: Vigo, Spain
Mensajes: 141
Antigüedad: 15 años, 5 meses
Puntos: 12
Respuesta: sentencia "if"

.. no me fije que era solo 1 caracter

Última edición por Annoying; 14/08/2009 a las 11:24
  #3 (permalink)  
Antiguo 14/08/2009, 10:59
 
Fecha de Ingreso: junio-2009
Mensajes: 6
Antigüedad: 14 años, 11 meses
Puntos: 0
Respuesta: sentencia "if"

Cual es el error que te da, te calcula mal tu programa?. Me parece que deberias comparar tambien con las minusculas, porque estas comparando solamente con letras mayusculas.

Los caracteres si necesitan pasar su direccion de memoria porque se trata de un solo elemento; esto en cambio con las cadenas de caracteres no es necesario ya que el primer caracter contiene la direccion inicial del arreglo de caracteres, como ocurriria con un arreglo de cualquier tipo.
  #4 (permalink)  
Antiguo 15/08/2009, 13:52
 
Fecha de Ingreso: agosto-2009
Mensajes: 18
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: sentencia "if"

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

int main (void)
{
float r1,r2,r3,requiv;
char estruct[2];

printf("\nIntroduce la primera resistencia: ");
scanf("%f", &r1);

printf("\nIntroduce la segunda resistencia: ");
scanf("%f", &r2);

printf("\nIntroduce la tercera resistencia: ");
scanf("%f", &r3);

printf("\nComo estan estas colocadas?\n serie s,paralelo p,serie-paralelo x: ");
scanf("%s", estruct);

if(estruct[0] == 'S' || estruct[0] == 's') {
requiv=r1+r2+r3;
printf ("entro en 1\n");
printf("\nLa resistencia equivalente es: %f",requiv);
}
else if(estruct[0] == 'P' || estruct[0] == 'p') {
requiv=(1/r1)+(1/r2)+(1/r3);
printf ("entro en 2\n");
printf("\nLa resistencia equivalente es: %f",requiv);
}
else {
requiv=((r1*r2)/(r1+r2))+r3;
printf ("entro en 3\n");
printf("\nLa resistencia equivalente es: %f",requiv);
}
system("PAUSE");
return 0;
}

no se por que el scanf no funciona con un solo caracter a leer, probe el getchar y tuve el mismo problema, no leia, entonces directamente use los vectores y este funciona bien, no lo se bien porque...pero con vectores va bien
  #5 (permalink)  
Antiguo 16/08/2009, 04:36
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: sentencia "if"

Entonces la unica difrencia respecto al mio, son las sentencias if, es decir, tu tambien has incluido las minusculas de la S,P y la X.......GRACIAS
  #6 (permalink)  
Antiguo 16/08/2009, 04:37
 
Fecha de Ingreso: agosto-2009
Mensajes: 3
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: sentencia "if"

....ademas de los vectores.....
  #7 (permalink)  
Antiguo 17/08/2009, 06:31
 
Fecha de Ingreso: agosto-2009
Mensajes: 18
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: sentencia "if"

y si..nada mas..no daba ningun tipo de error, solo que al querer leer la forma en que estaban unidas las resistencias salia de la ejecucion...ni idea porque,,jaja
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:29.