Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MasterPunk en 26 Septiembre 2010, 15:12 pm



Título: Problema ejercicios basicos
Publicado por: MasterPunk en 26 Septiembre 2010, 15:12 pm
Hola. Estoy intentando hacer los dos primeros ejercicios de C que vienen en el subforo "ejercicios" pero por desgracia ninguno me ha llegado a funcionar T_T¡
¿Una ayudita?

Ejercicio 100
Escribir un programa que solicite una temperatura y sistema de medición (celsius o farenheit) y que haga la conversión al otro sistema.
Código
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int t=0; //Sistema de medicion
  6. int n=0; //Temperatura
  7.  
  8. printf("Elige sistema de medicion:\nIntroduce 1 para convertir de Celsius a Farenheit\nIntroduce 2 para convertir de Farenheit a Celsius\n");
  9. scanf("%d",&t);
  10.  
  11. if(t==1 || t==2)
  12. {
  13.        printf("Introduce la temperatura\n");
  14.        scanf("%d",&n);
  15.  
  16.        if(t=1)
  17.        {
  18.               float z=(9*n/5)+32;
  19.               printf("%d grados celsius equivalen a %f grados farenheit",&n,&z);
  20.               scanf("%d",&n); //esto lo pongo porque sino no da tiempo a leer en anterior printf xD
  21.        }
  22.        else
  23.        {
  24.            float z=((n-32)*5)/9;
  25.            printf("%d grados farenheit equivalen a %f grados celsius",&n,&z);
  26.            scanf("%d",&n); //esto lo pongo porque sino no da tiempo a leer en anterior printf xD
  27.        }
  28.  
  29. }
  30. else
  31. {
  32.    printf("error");
  33. }
  34.  
  35.  
  36. }
  37.  


Ejercicio 101
Escribir un programa para el arqueo de caja de una tienda.
Se pide cuantas monedas de 1 centimo
Cuantas monedas de 2 centimos
Cuantas monedas de 5 centimos
Cuantas monedas de 10 centimos
Cuantas monedas de 20 centimos
Cuantas monedas de 50 centimos
Cuantas monedas de 1 Euro
Cuantas monedas de 2 Euros
Cuantos billetes de 5 Euros
Cuantos billetes de 10 euros
Cuantos billetes de 20 Euros
Cuantos billetes de 50 Euros
Cuantos billetes de 100 Euros
Cuantos billetes de 200 Euros
Cuantos billetes de 500 Euros
y calcular la suma total en euros

Código
  1. #include <stdio.h>
  2.  
  3. main()
  4. {
  5. int a=0;
  6. int b=0;
  7. int c=0;
  8. int d=0;
  9. int e=0;
  10. int f=0;
  11. int g=0;
  12. int h=0;
  13. int i=0;
  14. int j=0;
  15. int k=0;
  16. int l=0;
  17. int m=0;
  18. int n=0;
  19. int o=0;
  20.  
  21.  
  22. printf("Número de monedas de 1 céntimo:\n");
  23. scanf("%d",&a);
  24.  
  25. printf("Número de monedas de 2 céntimos:\n");
  26. scanf("%d",&b);
  27.  
  28. printf("Número de monedas de 5 céntimos:\n");
  29. scanf("%d",&c);
  30.  
  31. printf("Número de monedas de 10 céntimos:\n");
  32. scanf("%d",&d);
  33.  
  34. printf("Número de monedas de 20 céntimos:\n");
  35. scanf("%d",&e);
  36.  
  37. printf("Número de monedas de 50 céntimos:\n");
  38. scanf("%d",&f);
  39.  
  40. printf("Número de monedas de 1 euro:\n");
  41. scanf("%d",&g);
  42.  
  43. printf("Número de monedas de 2 euros:\n");
  44. scanf("%d",&h);
  45.  
  46. printf("Número de billetes de 5 euros:\n");
  47. scanf("%d",&i);
  48.  
  49. printf("Número de billetes de 10 euros:\n");
  50. scanf("%d",&j);
  51.  
  52. printf("Número de billetes de 20 euros:\n");
  53. scanf("%d",&k);
  54.  
  55. printf("Número de billetes de 50 euros:\n");
  56. scanf("%d",&l);
  57.  
  58. printf("Número de billetes de 100 euros:\n");
  59. scanf("%d",&m);
  60.  
  61. printf("Número de billetes de 200 euros:\n");
  62. scanf("%d",&n);
  63.  
  64. printf("Número de billetes de 500 euros:\n");
  65. scanf("%d",&o);
  66.  
  67. float z=(a+b+c+d+e+f)/100+g+h+i+j+k+l+m+n+o;
  68.  
  69. printf("Tienes un total de %f euros",&z);
  70. scanf("%d",&z); //esto lo pongo porque sino no da tiempo a leer en anterior printf xD
  71.  
  72. }
  73.  
  74.  

¿¿Dónde están los errores?? Gracias


Título: Re: Problema ejercicios basicos
Publicado por: xassiz~ en 26 Septiembre 2010, 15:28 pm
Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    int t=0; //Sistema de medicion
  6.    float n=0; //Temperatura
  7.    float z; //Resultado
  8.  
  9.    printf("Elige sistema de medicion:\n\t1.-Celsius a Farenheit\n\t2.-Farenheit a Celsius\n");
  10.    scanf("%d",&t);
  11.  
  12.    if(t==1 || t==2)
  13.    {
  14.        printf(">Temperatura:");
  15.        scanf("%f", &n);
  16.  
  17.        if(t==1)
  18.        {
  19.            z = (9*n/5)+32;
  20.            printf("\n%f grados Celsius equivalen a %f grados Farenheit\n", n, z);
  21.        }
  22.        else
  23.        {
  24.            z = ((n-32)*5)/9;
  25.            printf("\n%f grados Farenheit equivalen a %f grados Celsius\n", n, z);
  26.        }
  27.  
  28.    }
  29.    else
  30.    {
  31.        printf("Error");
  32.    }
  33.    return 0;
  34. }
  35.  

La función main() debe retornar un entero (int). No es el error grave digamos, pero deberías leerte esto (http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html).

Código
  1. if(t=1)
  2.  
Ves el fallo?

"=" es para asignar, no para comparar.


Luego en el printf pasas la dirección de la variable, en vez de la variable en sí.



El segundo código no me puse a hacerlo, pero el error es evidente.

Abajo haces la suma de el número de monedas/billetes pero no los multiplicas por su valor.


Saludos


Título: Re: Problema ejercicios basicos
Publicado por: MasterPunk en 26 Septiembre 2010, 15:54 pm
Citar
Ves el fallo?

"=" es para asignar, no para comparar.
uf, cierto, ese fallo no le vi. Aun asi ni tu programa ni el mio funcionan correctamente =S

(http://img213.imageshack.us/img213/8052/sinttulotfv.png)

Citar
Abajo haces la suma de el número de monedas/billetes pero no los multiplicas por su valor.

No multiplico por su valor?
las variables a-f son el valor de las monedas de centimos (y las divido /100)
el resto es en euros.


Título: Re: Problema ejercicios basicos
Publicado por: xassiz~ en 26 Septiembre 2010, 16:01 pm
Me quedó, compila el que puse ahora (faltó cambiar %d por %f).

En el segundo código, me refiero tu pides el número de monedas o billetes (que deberían ser int, pero bueno).

Luego haces la suma del número de monedas, billetes, etc. Pero si un billete es de 10 euros, e introduces que hay 5, tienes que hacer 5*10 y luego sumar.

¿Entiendes?


Título: Re: Problema ejercicios basicos
Publicado por: MasterPunk en 26 Septiembre 2010, 16:05 pm
Me quedó, compila el que puse ahora (faltó cambiar %d por %f).

En el segundo código, me refiero tu pides el número de monedas o billetes (que deberían ser int, pero bueno).

Luego haces la suma del número de monedas, billetes, etc. Pero si un billete es de 10 euros, e introduces que hay 5, tienes que hacer 5*10 y luego sumar.

¿Entiendes?

OW! fallo tonto. Igualmente ese no es el fallo por el que pregunto. El problema es que introduzca lo que introduzca mepone que la suma es 0,000000


Título: Re: Problema ejercicios basicos
Publicado por: Akai en 26 Septiembre 2010, 16:37 pm
Código
  1. printf("Tienes un total de %f euros",&z);

Tu fallo es el &z. En ese caso va sólo z, que es el float que printf espera, tu ahí le pasas la dirección de z;


Título: Re: Problema ejercicios basicos
Publicado por: MasterPunk en 26 Septiembre 2010, 16:59 pm
Código
  1. printf("Tienes un total de %f euros",&z);

Tu fallo es el &z. En ese caso va sólo z, que es el float que printf espera, tu ahí le pasas la dirección de z;

Ok gracias. Listo, ya funciona. Gracias por la ayuda a los dos


Título: Re: Problema ejercicios basicos
Publicado por: Horricreu en 26 Septiembre 2010, 17:01 pm
Citar
esto lo pongo porque sino no da tiempo a leer en anterior printf xD

Utiliza getchar() (http://www.cplusplus.com/reference/clibrary/cstdio/getchar/).

Saludos :P


Título: Re: Problema ejercicios basicos
Publicado por: xassiz~ en 27 Septiembre 2010, 15:16 pm
Citar
esto lo pongo porque sino no da tiempo a leer en anterior printf xD

Utiliza getchar() (http://www.cplusplus.com/reference/clibrary/cstdio/getchar/).

Saludos :P
No utilices nada y llamalo desde la consola xD


Título: Re: Problema ejercicios basicos
Publicado por: MasterPunk en 27 Septiembre 2010, 16:07 pm
Citar
esto lo pongo porque sino no da tiempo a leer en anterior printf xD

Utiliza getchar() (http://www.cplusplus.com/reference/clibrary/cstdio/getchar/).

Saludos :P
No utilices nada y llamalo desde la consola xD

pero al terminar la consola se cierra =S


Título: Re: Problema ejercicios basicos
Publicado por: [L]ord [R]NA en 27 Septiembre 2010, 16:20 pm
te han dicho que coloques getchar(); al final... getchar() espera una tecla para continuar.


Título: Re: Problema ejercicios basicos
Publicado por: Horricreu en 27 Septiembre 2010, 17:45 pm
Por cierto, en el primer código tienes un if() erróneo.

Saludos :P


Título: Re: Problema ejercicios basicos
Publicado por: xassiz~ en 27 Septiembre 2010, 18:31 pm
Por cierto, en el primer código tienes un if() erróneo.

Saludos :P

Código
  1. if(t=1)
  2.  
Ves el fallo?

"=" es para asignar, no para comparar.
:rolleyes:


Título: Re: Problema ejercicios basicos
Publicado por: Horricreu en 27 Septiembre 2010, 18:45 pm
Perdona, no lo vi...

Saludos :P