elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ayuda con calculadora básica en C
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con calculadora básica en C  (Leído 2,270 veces)
wazausky

Desconectado Desconectado

Mensajes: 10


Ver Perfil
Ayuda con calculadora básica en C
« en: 10 Marzo 2013, 21:19 pm »

Buenas, miren, este programa me a dado lata, es sencillo.
Les pongo el programa y luego les digo que es lo que necesito :P

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  float a, b, c;
  7.  char o, r;
  8.  while (1)
  9.  {
  10.        scanf("%f", &a);
  11.        scanf("%s", &o);
  12.        scanf("%f", &b);
  13.        if (o=='+')
  14.        {
  15.        c=a+b;
  16.        printf("%f", c);
  17.        }
  18.        if (o=='-')
  19.        {
  20.        c=a-b;
  21.        printf("%f", c);
  22.        }
  23.        if (o=='*')
  24.        {
  25.        c=a*b;
  26.        printf("%f", c);
  27.        }
  28.        if (o=='/')
  29.        {
  30.                  if (b==0)
  31.                  {
  32.                           printf("Division no definida para b = 0");
  33.                           break;
  34.                  }
  35.                  else
  36.                  {
  37.                      c=a/b;
  38.                      printf("%f", c);
  39.                  }
  40.        }
  41.  }
  42. }
  43.  

Como veran, el programa pide meter digito por digito, es decir, ingresar "a" y dar enter, luego ingresar la operacion, ya sea "+", "-", "*" o "/" y dar enter, despues ingresar "b" y dar enter.
Quiero que sea capaz de ingresar "a", la operacion (ya sea "+", "-", "*" o "/") y "b" en un solo paso.
Por favor y gracias :/


En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Ayuda con calculadora básica en C
« Respuesta #1 en: 10 Marzo 2013, 22:02 pm »

............................................................
Como veran, el programa pide meter digito por digito, es decir, ingresar "a" y dar enter, luego ingresar la operacion, ya sea "+", "-", "*" o "/" y dar enter, despues ingresar "b" y dar enter.
Quiero que sea capaz de ingresar "a", la operaciony "b" en un solo paso.
Por favor y gracias :/

Para eso está la función sscanf. Por ejemplo:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main(int argc, char *argv[])
  5. {
  6.  float a, b, c;
  7.  char o, r, entrada[81]="";
  8.  while (1){
  9.            fgets( entrada,80,stdin);
  10.            sscanf( entrada, "%f%c%f ",&a,&o,&b );
  11.            if (o=='+')
  12.                printf("%g", a+b);
  13.            if (o=='-')
  14.                printf("%g", a-b);
  15.            if (o=='*')
  16.                printf("%g", a*b);
  17.            if (o=='/')  {
  18.                    if (b==0)  {
  19.                        printf("Division no definida para b = 0");
  20.                        break;
  21.                    }
  22.                    else
  23.                        printf("%g", a/b);
  24.            }
  25.      }
  26.   return 0;
  27. }
  28.  

Saluditos!. ...


En línea

rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Ayuda con calculadora básica en C
« Respuesta #2 en: 12 Marzo 2013, 03:03 am »

Quiero que sea capaz de ingresar "a", la operacion (ya sea "+", "-", "*" o "/") y "b" en un solo paso.
Si te refieres a usar una sola llamada a función basta con:
Código
  1. scanf("%f %c %f", &a, &o, &b);

Si te refieres a introducir los operandos y el operador en la misma linea no hay problema, solo se tiene que introducir, por ejemplo:
Código:
2 + 2

Por ultimo tu programa tiene un error importante: para leer un carácter con scanf se debe utilizar " %c", no es correcto "%s" ya que este es para cadenas (una palabra).

Un saludo
En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calculadora básica by swik
Scripting
.:Swik:. 1 2,855 Último mensaje 20 Abril 2010, 02:49 am
por BloodyDark
Ayuda con Prueba Basica
Criptografía
ESTgarcia 5 4,694 Último mensaje 16 Diciembre 2011, 13:50 pm
por APOKLIPTICO
Calculadora basica en visual basic
.NET (C#, VB.NET, ASP)
Sarachan 5 5,292 Último mensaje 5 Diciembre 2011, 14:09 pm
por Sarachan
[SRC] [javascript] Calculadora básica estilo Windows
Desarrollo Web
Psyke1 0 3,222 Último mensaje 16 Octubre 2012, 11:42 am
por Psyke1
[Python] Calculadora básica de consola
Scripting
flacc 0 2,746 Último mensaje 23 Octubre 2012, 00:25 am
por flacc
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines