Dev - C++ - programa sencillo (principiante)

 
Vista:

programa sencillo (principiante)

Publicado por jonnyv (2 intervenciones) el 14/09/2005 22:29:09
hola

quisiera crear algo super sencillo pero como yo soy nuevo en esto de la programacion no se como hacerlo.
la cosa es que tengo que pasar de grados celsius a grados farenheit y visiversa. lo intento hacer con un switch pero no me sale. aqui les pongo el algoritmo para que lo chequeen y me digan por favor que es lo que tiene de malo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#define A 1.8
#define B 0.5
#include<stdio.h>
#include<stdlib.h>
main()
{
int  c, f, r1, r2, d;
      printf("\nPara convertir de celsius a farenheit pulse 1\nPara convertir de farenheit a celsius pulse 2");
      scanf("\n%f", d);
switch (d)
{
case 1:
       printf("\nIntroducir grados en celsius");
       scanf("\n%f", &c);
       r1=A*c;
       d=r1+32;
       break;
 
case 2:
       printf("\nIntrodusca grados en farenheit");
       scanf("\n%f", &f);
       r2=B*f;
       d=r2-32;
       break;
default:
        printf("no esta dentro de los patrones");
}
printf("La conversion es: %f", d);
system("pause");
}

si existe una manera mas facil y mejor de hacer les agradeceria que me la dijeran y si no es mucha molestia coloquen el algoritmo en el post.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:programa sencillo (principiante)

Publicado por Jesus (2 intervenciones) el 14/09/2005 22:46:41
En C si multiplicas una constant no entera con una variable entera, C transforma la variable ( o constante ) no entera en entera truncando su parte decimal, asi que:
-en la sentencia
r1=A*c; // A se convierte en 1

-en la sentencia
r2=B*f; // B se convierte en 0

conclusion ni en un millon de años los calculos van a ser correctos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:programa sencillo (principiante)

Publicado por pepe (1 intervención) el 12/05/2008 15:07:09
hola si declaras las variables con "int" (que es para numeros enteros) has de usar "%d" en vez de usar "%f". Te aconsejo cabiar el "int" por "float" (podras usar todos los reales) . Nose si te funcionara este lo retoco un poco:

---------------------------------------------------------------------------------------------------------------

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#include<stdio.h>
#include<stdlib.h>
 
void main()
{
float c, f, r1, r2, d, A, B;
printf("
Para convertir de celsius a farenheit pulse 1
Para convertir de farenheit a celsius pulse 2");
scanf("
%f", d);
A=1.8;
B=0.5;
switch (d)
{
case 1:
printf("
Introducir grados en celsius");
scanf("
%f", &c);
r1=A*c;
d=r1+32;
break;
 
case 2:
printf("
Introdusca grados en farenheit");
scanf("
%f", &f);
r2=B*f;
d=r2-32;
break;
default:
printf("no esta dentro de los patrones");
}
printf("La conversion es: %f", d);
system("pause");
}
----------------------------------------------------------------------------------------------------------------
Supongo que este funcionará
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar