Buenas, miren, este programa me a dado lata, es sencillo.
Les pongo el programa y luego les digo que es lo que necesito :P
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a, b, c;
char o, r;
while (1)
{
scanf("%f", &a);
scanf("%s", &o);
scanf("%f", &b);
if (o=='+')
{
c=a+b;
printf("%f", c);
}
if (o=='-')
{
c=a-b;
printf("%f", c);
}
if (o=='*')
{
c=a*b;
printf("%f", c);
}
if (o=='/')
{
if (b==0)
{
printf("Division no definida para b = 0");
break;
}
else
{
c=a/b;
printf("%f", c);
}
}
}
}
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 :/
Cita de: wazausky en 10 Marzo 2013, 21:19 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:#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
float a, b, c;
char o, r, entrada[81]="";
while (1){
fgets( entrada,80,stdin);
sscanf( entrada, "%f%c%f ",&a,&o,&b );
if (o=='+')
printf("%g", a+b);
if (o=='-')
printf("%g", a-b);
if (o=='*')
printf("%g", a*b);
if (o=='/') {
if (b==0) {
printf("Division no definida para b = 0");
break;
}
else
printf("%g", a/b);
}
}
return 0;
}
Saluditos!. ...(http://i1280.photobucket.com/albums/a497/leosansan/31grandes_zps68b8b90a.gif)
Cita de: wazausky en 10 Marzo 2013, 21:19 PMQuiero 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:
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:
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