Anuncios Google

problema con simple calculadora

Hola amigos, he estado viendo y aprendiendo los tutos de la comunidad (que por cierto, son muy buenos :)) y decidi crear una simple calculadora que sume solo xD.

Bueno este es el codigo:

#include <stdio.h>
 
int main() {
 
float a,b,c,d;
d = c + b;
printf("Bienvenido a CCalc!\n");
printf("-------------------\n");
printf(" --> 1.Sumar\n");
printf("Seleccione una opción: ");
scanf( "%f" , &a );
if (a==1) {
printf("Número 1: ");
scanf( "%f" , &b );
printf("Número 2: ");
scanf( "%f" , &c );
printf("El número total es: %f\n",d);
}
return 0;
 
}

El problema es que cuando lo ejecuto, todo va bien pero en el momento de sumar los  numeros, siempre sale 0.0000 y no se que hacer. Podriais ayudarme ??

Gracias!


"En el mundo solo hay dos tipos de personas: los que saben C y los que no"

"Mi esposa tenía un gran físico" --> Albert Einstein

Ya sabes

http://wiisender.260mb.com/


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

buscar

vale la proxima vez lo hare mejor xD

switchs

Me habeis dado una idea gracias a los switchs! Una pregunta me podríais decir que funciones incluye la librería <stdlib.h> ??? 


"En el mundo solo hay dos tipos de personas: los que saben C y los que no"

"Mi esposa tenía un gran físico" --> Albert Einstein

Ya sabes

http://wiisender.260mb.com/

Imagen de Adrian_ac2

Bueno este seria el

Bueno este seria el codigo:

#include <stdio.h>
#include <stdlib.h>
 
int main() 
{
    float a,b,c,d;
    printf("Bienvenido a Calc!\n-------------------\n");
    printf(" --> 1.Sumar\n");
    printf("Seleccione una opcion: ");
    scanf( "%f" , &a );
 
    if (a==1) 
    {
        printf("Número 1: ");
        scanf( "%f" , &b );
        printf("Número 2: ");
        scanf( "%f" , &c );        
        d = c + b;
        printf("El número total es: %f\n",d);
    }
    else
    {
        printf("no es una opcion.");
    }
    system("pause");
    return 0;
}

Basicamente el error estuvo en que sumaste b y c, antes de darles  valores, por la tanto dio el valor por default 0.00. Espero que te ayude esto. Y descuida esos son detalle que  siempre se escapan. Suerte con proximos codigo y sigue adelante,

Saludo


 

Imagen de pipagerardo

Menus con SWITCH. . .

int a;
printf( "Seleccione una opción: ");
scanf( "%i", &a );

switch ( a ) {
  case 1: {
    sentencias_1;
    break;
  }
  case 2: {
    sentencias_2;
    break;
  }
. . .
. . .
. . .
  default: {
    sentencias_default;
    break;
  }
}

Solo comentarte que para los menús es más correcto utilizar "SWITCH" en vez de "IF,s" anidados. Eso si, la variable "a" debería ser de tipo "int" para que funcione "SWITCH".

Posdata: También soporta "char", ten siempre en cuenta utilizar el tipo más pequeño que sea posible por dos motivos: ahorrar memoria y ganar velocidad de proceso. No es igual de rápido comparar un "char" que un "float". En fín que pesetero soy, ahorrar y no gastéis a lo tonto.

Imagen de pspgorrister

[OT] Las llaves

Curioso lo de las llaves dentro de los "cases" del switch, no sabía que se podían usar, aunque para mí guarrean más el código (de hecho nunca las había visto o no me había fijado).


LuaDiE: Crea en Lua sin teclear código. Compatible HM7, HMv2, LuaPlayer, LuaDEV y PGE.

Imagen de pipagerardo

Si, las llaves son opcionales.

Si el código es muy simple no hacen falta las llaves en los "CASE".  Aunque son útiles para definir variables temporales dentro de elllas.

Ok

muchisimas gracias por las sugerencias. ya encontre mi error gracias a vuestros comentarios! :)(DIOS q tonteria de error xD) el problema es que soy un NOOB en esto :D xD

 

Muchas gracias SALU2


"En el mundo solo hay dos tipos de personas: los que saben C y los que no"

"Mi esposa tenía un gran físico" --> Albert Einstein

Ya sabes

http://wiisender.260mb.com/

Imagen de pspgorrister

Esto...

¿Ese es todo el código?. En ningún sitio veo que sumes b+c y lo guardes en d DESPUÉS DE INTRODUCIR LOS VALORES.

Imagen de esmjanus

Si lo pone

pero lo pone antes de la linea del primer printf XD, debe de ponerlo antes del ultimo, despues de que a capturado los datos, asi como lo comentas.

 

Imagen de pspgorrister

Yo no he dicho que no lo

Yo no he dicho que no lo ponga, sino que no lo pone DESPUÉS :D

Imagen de exterminator

Sencillo

No uses floats.

Salu2

Imagen de pspgorrister

Y qué problema hay si usa

Y qué problema hay si usa floats?

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.