AYUDA CON VARIABLES CHAR

Iniciado por wazausky, 10 Marzo 2013, 02:35 AM

0 Miembros y 1 Visitante están viendo este tema.

wazausky

Buenas, necesito que este programa


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

int main(int argc, char *argv[])
{
 float a, b, c, o, r;
 printf("Ingrese el valor de a: ");
 scanf("%f", &a);
 printf("\nIngrese el valor de b: ");
 scanf("%f", &b);
 while (1)
 {
       printf("\nEscoja la operacion a realizar: \n");
       printf("\n1.- a+b\n");
       printf("\n2.- a-b\n");
       printf("\n3.- a*b\n");
       printf("\n4.- a/b\n\n");
       scanf("%f", &o);
       if (o==1)
       {
                c=a+b;
                printf("\n%f + %f = %f\n", a, b, c);
                printf("\n\nDesea realizar otra operacion?\n");
                printf("\n1.- SI\n");
                printf("\n2.- NO\n\n");
                scanf("%f", &r);
                if (r==2)
                {
                             return 0;
                }
       }
       if (o==2)
       {
                c=a-b;
                printf("%f - %f = %f", a, b, c);
                printf("\n\nDesea realizar otra operacion?\n");
                printf("\n1.- SI\n");
                printf("\n2.- NO\n\n");
                scanf("%f", &r);
                if (r==2)
                {
                             return 0;
                }
               
       }
       if (o==3)
       {
                c=a*b;
                printf("%f*%f = %f", a, b, c);
                printf("\n\nDesea realizar otra operacion?\n");
                printf("\n1.- SI\n");
                printf("\n2.- NO\n\n");
                scanf("%f", &r);
                if (r==2)
                {
                             return 0;
                }
       }
       if (o==4)
       {
                if(b==0)
                {
                printf("Division no definida para b = 0");
                }
                else
                {
                    c=a/b;
                    printf("%f/%f = %f", a, b, c);
                    printf("\n\nDesea realizar otra operacion?\n");
                    printf("\n1.- SI\n");
                    printf("\n2.- NO\n\n");
                    scanf("%f", &r);
                    if (r==2)
                    {
                             return 0;
                    }
                }
       }
 }
}


En la parte de


printf("\n\nDesea realizar otra operacion?\n");
                    printf("\n1.- SI\n");
                    printf("\n2.- NO\n\n");
                    scanf("%f", &r);
                    if (r==2)
                    {
                             return 0;
                    }


Quiero que "r" no sea float sino char.
Ayuda por favor y gracias :)

durasno

mmmm algo me dice q este programa no es tuyo...
CitarQuiero que "r" no sea float sino char.
char r;   ;)


Plantea mejor tu duda. Saludos
Ahorrate una pregunta, lee el man

wazausky

Cita de: durasno en 10 Marzo 2013, 05:53 AM
mmmm algo me dice q este programa no es tuyo...char r;   ;)


Plantea mejor tu duda. Saludos

Primero este programa lo acabo de hacer, y no se que es lo que no entiendes.
Necesito que R no sea una variable float sino char mm ahora si quedo claro???????

naderST

Donde declaras la variable r como float, la declaras como char y en el scanf() utilizas %c y no %f.

leosansan

#4
Cita de: naderST en 10 Marzo 2013, 08:15 AM
Donde declaras la variable r como float, la declaras como char y en el scanf() utilizas %c y no %f.

Y además se repite demasiado código. Creo que con un switch estaría más "contenido" el programa:

Código (cpp) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 float a, b;
 int o;
 char r;
 printf("Ingrese el valor de a: ");
 scanf("%f", &a);
 printf("\nIngrese el valor de b: ");
 scanf("%f", &b);
 while (1)  {
       printf("\nEscoja la operacion a realizar: \n");
       printf("\n1.- a+b\n");
       printf("\n2.- a-b\n");
       printf("\n3.- a*b\n");
       printf("\n4.- a/b\n\n");
       scanf("%d", &o);
       switch (o){
       case 1:
           printf("\n%g + %g = %g\n", a, b,a+b);
           break;
       case 2:
           printf("%g - %g = %g", a, b, a-b);
           break;
       case 3:
           printf("%g*%g = %g", a, b, a*b);
           break;
       case 4:
           if(b==0)
               printf("Division no definida para b = 0");
           else  {
               printf("%g/%g = %g", a, b, a/b);
           }
           break;
       default:
           puts("\nOperacion no valida");
           break;
       }
       printf("\n\nDesea realizar otra operacion?\n");
       printf("\n1.- S\n");
       printf("\n2.- N\n\n");
       scanf(" %c", &r);
       if (r!='s' && r!='S')
           return 1;
   }
    return 0;
}



Saluditos!. ...

durasno

CitarNecesito que R no sea una variable float sino char mm ahora si quedo claro???????
No, y la respuesta te la di

char r;

Ahorrate una pregunta, lee el man

wazausky

Cita de: durasno en 10 Marzo 2013, 21:11 PM
No, y la respuesta te la di

char r;



Y tu cres que si fuera asi de sencillo no lo hubiera echo ya?

GENIUS

durasno

CitarY tu cres que si fuera asi de sencillo no lo hubiera echo ya?
Es por eso q te dije q plantearas mejor tu duda, porque la respuesta a "Quiero que r no sea float sino char." es "char r"
Ahorrate una pregunta, lee el man

daryo

#8
y para que quieres que sea char ?

sabiendo eso talves sea mas facil ayudarte

podrias hacer algo como

Código (c++) [Seleccionar]
char rr;
float r=99; // por darle un valor a r
rr=(char)r;


a eso te refieres? ademas ten en cuenta que los valores ascii son numeros enteros , si pones algo como 1.1 no se que podria pasar
buenas

leosansan

Cita de: daryo en 10 Marzo 2013, 21:47 PM
y para que quieres que sea char ?

.............................

Porque es una variable que va a tomar el valor de un caracter 's' u otro, como creo que está meridiana mente claro en el código que postee más arriba.

De cualquier manera, ya durasno se lo dejo claro por activa y por pasiva.

Saluditos!, ,,,