Autor Tema: programa conversión de pesos a dólares contadores acumuladores en C (lenguajeC)  (Leído 5325 veces)

Mbot

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Qué tal, necesito crear un programa que realice la conversión de pesos a dólares y que al final del día me indique cuántas transacciones se realizaron, cuántos pesos ingresaron y cuántos dólares salieron.

Este es mi código, en el cual estoy atorado, ya que siempre me arroja la información de la primer y única conversión.

Código: [Seleccionar]
#include<stdio.h>
#include<stdlib.h>

#define dolar 19.94


 main(){

int transacciones; // Contador
float totalpesos, totaldolares; //Acumuladores
float pesos, total;
totalpesos=0;
totaldolares=0;


printf("\n\n\t * * Calculadora de casa de cambio * * \n");

printf("\n\nIngresa la cantidad total de pesos que deseas cambiar: $");
scanf("%f", &pesos);

if (pesos>0)
{   


for (transacciones=0; transacciones<=10; transacciones++)
{   
total=pesos/dolar;
printf("\n\nEl total a entregar en dolares es: $ %.2f\n\n\n", total);
}   

totalpesos=totalpesos+total;
totaldolares=totaldolares+total;


printf("\n\nTotal de transacciones: %i", transacciones);
printf("\n\nTotal de pesos ingresados: %.2f", totalpesos);
printf("\n\nTotal en dolares entregados: %.2f", totaldolares);



else   

printf("\n\nIngresa un valor valido\n\n");


system("pause");

return 0;

}


Agradezco sus ayuda.
« Última modificación: 18 de Abril 2021, 11:23 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 987
    • Ver Perfil
Re: Ayuda con contadores y acumuladores en C
« Respuesta #1 en: 20 de Febrero 2021, 12:07 »
Hola.
Tienes que enfocarlo de forma distinta.

Todo el proceso de pedir pesos, convertir, etc... se ha de realizar mientras se cumpla una determinada condición, para que el usuario pueda hacer todas las transacciones que quiera.

Por ejemplo, podemos usar un bucle while que se repita mientras un char tenga valor 's'.
Al final de cada transacción preguntamos al usuario si quiere hacer otra.
Si responde 's', el proceso se repite. Si responde 'n', entonces el while termina y se mostraría en pantalla el reporte de totales acumulados.

Luego, otro fallo que tienes es que usas "total" tanto para acumular dolares como pesos

Código: [Seleccionar]
  totalpesos=totalpesos+total;
  totaldolares=totaldolares+total;
Eso va a implicar que ambos acumuladores tendrán el mismo valor al final del programa

En vez de una variable llamada "total", mejor usar una llamada "dolares", ya que lo que recibe es la conversión en dolares.
Así, a totalPesos le acumularemos la variable "pesos", que es el valor introducido por teclado.

Y a totalDolares le acumulamos la variable "dolares", que es el valor de conversión.

Prueba este código, a ver si ahora lo ves más claro:

Código: [Seleccionar]
#include<stdio.h>
#include<stdlib.h>

#define dolar 19.94

int main()
{
    int transacciones = 0;
    float totalPesos = 0, totalDolares = 0;
    float dolares = 0, pesos = 0;
    char continuar = 's';

    while (continuar == 's')
    {
        printf("\n\n\t * * Calculadora de casa de cambio * * \n");

        printf("\n\nIngresa la cantidad total de pesos que deseas cambiar: $");
        scanf("%f", &pesos);
        if (pesos > 0)
        {
            //Hacemos la conversion e informamos en pantalla
            dolares = pesos/dolar;
            printf("Dolares obtenidos al cambio: %.2f$", dolares);
            //Acumulamos pesos ingresados
            totalPesos = totalPesos + pesos;
            //Acumulamos dolares entregados
            totalDolares = totalDolares + dolares;
            //Contamos esta transaccion
            transacciones++;

            //Preguntamos si quiere continuar
            printf("\nHacer nueva transaccion?(s/n): ");
            scanf(" %c", &continuar);
        }
        else
            printf("\n\nIngresa un valor valido\n\n");
    }
    //Final del día, presentamos reporte
    system("cls");
    printf("\t * * Resumen de operaciones * * \n");
    printf("Transacciones realizadas: %d\n", transacciones);
    printf("Pesos ingresados: %.2f\n", totalPesos);
    printf("Dolares entregados: %.2f\n", totalDolares);

    printf("\n\t\tFIN DE PROGRAMA\n");
    system("pause");

    return 0;
}
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

Mbot

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 3
    • Ver Perfil
Re: Ayuda con contadores y acumuladores en C
« Respuesta #2 en: 20 de Febrero 2021, 20:22 »
Muchas gracias!!!  Me ayudaste bastante, no entendía la forma en como declarar el programa para poder llegar a lo que se me solicitaba y con tu código me fue mucho mas fácil entender el procedimiento paso a paso. Tenía días atorado en el código.  :)
« Última modificación: 18 de Abril 2021, 11:22 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".