Empezando con funciones

Iniciado por ++c, 27 Mayo 2014, 23:22 PM

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

++c

Hola, estaba creando un programa simple para ir asimilando el concepto de inicio de funciones, pero tengo una duda en como podría obtener el total de importe que no me cuadra con lo que se clasifica individualmente por automóvil.

No se si podría realizar el cálculo como lo hago en la función principal o intentarlo con la llamada de otra función para que me retorne el total...

Ahí va mi parte de código:


/* programa calculo importe parking */
#include <stdio.h>

    float calcularImporte(float _horas);

    int main(void){

        float horas,total=0;
        int contador;
        printf("\n\tAutomovil \tHoras \t\tImporte:");
        for( contador=1; contador <=3; contador++ ){
            scanf("%f",&horas);
            printf("\t");
            printf("\t%d \t%f \t%f$",contador,horas,calcularImporte(horas));
            horas+=horas;
            total=total+calcularImporte(horas);
        }
        printf("\n \t\t\tTotal %f \tTotal %f",horas,total);
        printf("\n");
    }

    float calcularImporte( float _horas ){

        float importe;
        if(_horas<=3){
            importe=2.00;
        }else if (_horas>3 && _horas <24){
            importe=2.00+_horas*0.5;
        }else
            importe=10.00;
        return(importe);
    }



Saludos y gracias

ivancea96

Si estás 23 horas, te cuesta 13.50€, pero si estás 1 hora más, te cuesta 10€ xD

Al asunto:

Código (cpp) [Seleccionar]
horas+=horas;

Pusiste eso. Así estás duplicando las horas. Al total, le estás sumando horas de más. Quita esa linea, y debería ir bien.

++c

Hola amigo gracias por la aportación, he revisado de nuevo el código y lo he terminado de desarrollar tal y como deseaba.

Adjunto el código terminado:


/* programa calculo importe parking */
#include <stdio.h>

    float calcularImporte(float _horas);

    int main(void){

        float horas,total=0,total2=0;
        int contador;
        printf("\n\tAutomovil \tHoras \t\tImporte");
        for( contador=1; contador <=3; contador++ ){
        printf("\n:");
            scanf("%f",&horas);
            total=total+calcularImporte(horas);
            total2+=horas;
            printf("\t");
            printf("\t%d \t%f \t%f$",contador,horas,calcularImporte(horas));
        }
        printf("\n \t\t\tTotal %.2f \tTotal %.2f",total2,total);
        printf("\n");
    }
   
    float calcularImporte( float _horas ){

        float importe;
        if(_horas<=3){
            importe=2.00;
        }else if (_horas>3 && _horas <24){
            importe=2.00+_horas*0.5;
        }else
            importe=10.00;
        return(importe);
    }


Saludos