Foros del Web » Programación para mayores de 30 ;) » C/C++ »

no me sale este programita

Estas en el tema de no me sale este programita en el foro de C/C++ en Foros del Web. hola buenas. éste programa no me quieres salir #include <stdio.h> #include <conio.h> int main(){ int litros; int kilometros; int total; int contador; float rendimiento; float ...
  #1 (permalink)  
Antiguo 21/02/2014, 08:36
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 2 meses
Puntos: 0
no me sale este programita

hola buenas. éste programa no me quieres salir

#include <stdio.h>
#include <conio.h>

int main(){

int litros;
int kilometros;
int total;
int contador;


float rendimiento;
float promedio;

total=0;
contador=0;


printf("introduzca los litros(-1 para salir)\n");
scanf("%d",&litros);
printf("introduzca los kilometros\n");
scanf("%d",&kilometros);

while(litros!=-1){

rendimiento=litros/kilometros;
printf("los kilomtros rrecoridos fueron :%f\n",rendimiento);

total=total+ rendimiento;
contador=contador+1;



printf("introduzca los litros(-1 para salir)\n");
scanf("%d",&litros);
printf("introduzca los kilometros\n");
scanf("%d",&kilometros);

}
if(contador!= 0 ){

promedio=total/contador;

printf("el promedio del kilomtraje es :%f",promedio);

getch();
}else{ printf("no se introdujo ningun valor"); }

return 0;
getch();
}


lo que debe de hacer es obtener el rendimiento kilometro /litro de cada carro, diespues imprimirlo. así sucesivamente hasta que el usuario presione -1 para salir. despues de salir calculará el promedio del rendimiento de cada valor introducido.

mi problemas es: que si le pongo ; litros :12 , kilometros :6 me sale 2 , este misimo resultado lo pongo un par de veces y despues pongo un 15 entre 3 me sale 5. me salgo , y el promedio que calcula es 2 .

y si inicia lizo mi varilabe rendimento , siempre me imprime 0.

no se que hacer ayuda porfavor

para especificar mas lo que hace el programa es: de cada divison entre kilometro y litro obtengo un resultado, ese resultado lo sumo a un total, y asi se va sumando hasta que el usuario ya no quiera. despues me tiene que sacar el promedio de cada resultado de divisiones puestas por el usuario osease .


total /contador para el promedio de los resultados del rendimiento

Última edición por superchava666; 21/02/2014 a las 08:42
  #2 (permalink)  
Antiguo 21/02/2014, 09:57
Avatar de leosansan  
Fecha de Ingreso: mayo-2012
Ubicación: GRAN CANARIA
Mensajes: 194
Antigüedad: 12 años
Puntos: 49
Respuesta: no me sale este programita

* Un primer problema está en declarar las varibles como int, lo que hace que la división entre ellas sea asimismo de tipo int.

* Por otro lado tal como lo tienes sólo se introducen dos datos, cuando en principio se deberían introducir hasta que la variable litros sea -1.

Fíjate en el código y el uso de un do-while para introducir datos hasta litros=-1:

Código C++:
Ver original
  1. #include <stdio.h>
  2. #include <conio.h>
  3.  
  4. int main(){
  5.  
  6. float litros;
  7. float kilometros;
  8. float total;
  9. int contador;
  10. float rendimiento;
  11. float promedio;
  12. total=0.0;
  13. contador=0;
  14.  
  15. do{
  16.   printf("introduzca los litros(-1 para salir)\n");
  17.   scanf("%f",&litros);
  18.   if (litros==-1)
  19.     break;
  20.   printf("introduzca los kilometros\n");
  21.   scanf(" %f",&kilometros);
  22.   rendimiento=litros/kilometros;
  23.   printf("los kilometros recoridos fueron :%f\n",rendimiento);
  24.   total=total+ rendimiento;
  25.   contador++;
  26. }while(1);
  27.  
  28. if(contador!= 0 ){
  29.   promedio=total/contador;
  30.   printf("el promedio del kilomtraje es :%f",promedio);
  31.   getch();
  32. }
  33. else
  34.   printf("no se introdujo ningun valor");
  35. return 0;
  36. }

¡¡¡Saluditos!!!. ....
  #3 (permalink)  
Antiguo 21/02/2014, 10:00
 
Fecha de Ingreso: junio-2008
Ubicación: Seattle, USA
Mensajes: 733
Antigüedad: 15 años, 10 meses
Puntos: 61
Respuesta: no me sale este programita

Sugiero usar Highlight para el codigo.

Las operaciones entre enteros tiene clausura, osea el resultado siempre es entero. Esto incluye la division.

5 /2 da 2 SIEMPRE, no importa si lo asignas luego a un float.

5 / 2.0 = 2.5
5.0 / 2 = 2.5
5.0 / 2.0 = 2.5
(float) 5 / 2 = 2.5
5 / (float) 2 = 2.5
(float) 5 / (float) 2 = 2.5
__________________
Visita mi perfil en LinkedIn
  #4 (permalink)  
Antiguo 24/02/2014, 02:06
Avatar de epestana92  
Fecha de Ingreso: febrero-2014
Ubicación: Cancún, México
Mensajes: 1
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: no me sale este programita

Te dejo el ejercicio que intentas realizar, este esta en el libro de como programas en C/C++ y Java.

Código C:
Ver original
  1. /* Ejercicio 3.17: eje3_17.c
  2.    Calcula el promedio de kilómetros recorridos
  3.    por litro de gasolina. */
  4.  
  5. #include<stdio.h>
  6.  
  7. /* La función main comienza la ejecución del programa. */
  8. int main(void)
  9. {
  10.    /* Declaración de las variables. */
  11.    float kilometros, litros, totalKilometros = 0, totalLitros = 0, promedioTanque = 0, promedioTotal = 0;
  12.  
  13.    printf("Introduzca los litros cargados (-1 para terminar): ");
  14.    scanf("%f", &litros);
  15.  
  16.    while (litros !=-1)
  17.    {
  18.       printf("Introduzca los kilometros recorridos: ");
  19.       scanf("%f", &kilometros);
  20.       totalLitros += litros;
  21.       totalKilometros += kilometros;
  22.       promedioTanque = kilometros / litros;
  23.       promedioTotal = totalKilometros / totalLitros;
  24.       printf("Los kilometros por litro de este tanque fueron de: %f\n\n", promedioTanque);
  25.  
  26.       printf("Introduzca los litros cargados (-1 para terminar): ");
  27.       scanf("%f", &litros);
  28.    } /* Fin del ciclo while. */
  29.  
  30.    printf("El primedio total de kilometros por litro fue de: %f\n", promedioTotal);
  31.  
  32.    return 0; /* Indica que el programa terminó con éxito. */
  33.  
  34. } /* Fin de la función main. */

Un punto importante que me gustaría compartir contigo es que siempre que trates de de obtener un numero que tendrán punto decimal los declares como float, o en su caso double, es importante que revises el tipo de dato más adecuado para la aplicación a realizar.
  #5 (permalink)  
Antiguo 24/02/2014, 08:32
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: no me sale este programita

[QUOTE=CalgaryCorpus;4570680]Sugiero usar Highlight para el codigo.

Las operaciones entre enteros tiene clausura, osea el resultado siempre es entero. Esto incluye la division.

5 /2 da 2 SIEMPRE, no importa si lo asignas luego a un float.

5 / 2.0 = 2.5
5.0 / 2 = 2.5
5.0 / 2.0 = 2.5
(float) 5 / 2 = 2.5
5 / (float) 2 = 2.5
(float) 5 / (float) 2 = 2.5[/QUOTE

me sacaste de mi duda, gracias¡¡¡ :):)
  #6 (permalink)  
Antiguo 24/02/2014, 08:32
 
Fecha de Ingreso: febrero-2014
Ubicación: Guadalajara
Mensajes: 34
Antigüedad: 10 años, 2 meses
Puntos: 0
Respuesta: no me sale este programita

Cita:
Iniciado por epestana92 Ver Mensaje
Te dejo el ejercicio que intentas realizar, este esta en el libro de como programas en C/C++ y Java.

Código C:
Ver original
  1. /* Ejercicio 3.17: eje3_17.c
  2.    Calcula el promedio de kilómetros recorridos
  3.    por litro de gasolina. */
  4.  
  5. #include<stdio.h>
  6.  
  7. /* La función main comienza la ejecución del programa. */
  8. int main(void)
  9. {
  10.    /* Declaración de las variables. */
  11.    float kilometros, litros, totalKilometros = 0, totalLitros = 0, promedioTanque = 0, promedioTotal = 0;
  12.  
  13.    printf("Introduzca los litros cargados (-1 para terminar): ");
  14.    scanf("%f", &litros);
  15.  
  16.    while (litros !=-1)
  17.    {
  18.       printf("Introduzca los kilometros recorridos: ");
  19.       scanf("%f", &kilometros);
  20.       totalLitros += litros;
  21.       totalKilometros += kilometros;
  22.       promedioTanque = kilometros / litros;
  23.       promedioTotal = totalKilometros / totalLitros;
  24.       printf("Los kilometros por litro de este tanque fueron de: %f\n\n", promedioTanque);
  25.  
  26.       printf("Introduzca los litros cargados (-1 para terminar): ");
  27.       scanf("%f", &litros);
  28.    } /* Fin del ciclo while. */
  29.  
  30.    printf("El primedio total de kilometros por litro fue de: %f\n", promedioTotal);
  31.  
  32.    return 0; /* Indica que el programa terminó con éxito. */
  33.  
  34. } /* Fin de la función main. */

Un punto importante que me gustaría compartir contigo es que siempre que trates de de obtener un numero que tendrán punto decimal los declares como float, o en su caso double, es importante que revises el tipo de dato más adecuado para la aplicación a realizar.

gracias¡¡¡¡

Etiquetas: int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:00.