Problema codice adoperando funzioni

di il
4 risposte

Problema codice adoperando funzioni

Buongiorno,

Gentilmente mi potete controllare il seguente codice? devo capire bene come funzionano le funzioni
In pratica deve fare questo, ma non lo fà,

In uscita deve dare questo:

Macchina ore addebito
1 1.5 2.0
2 4 2.50
3 24 10.00
. . .
. . .

Tot macchine: 3
Tot ore: 29.5
Tot addebito: 14.50

#include<stdio.h>



/* In uscita deve dare questo:

	Macchina		ore			addebito
		1			1.5			   2.0
		2			4			   2.50
		3			24			  10.00
		.			.				.
		. 			.				.

 Tot macchine: 3
 Tot ore: 29.5
 Tot addebito: 14.50 
*/




void setinsert ( void );
float nore(float ore);
void stampaore(float ore);
float addebitore(float addebito);
void stampatutto(void); // problema a stampare tutto



int main(void){

			float ore,orario;

						
			setinsert();
			orario = nore(ore);
			stampaore(orario);
			addebitore(orario);
			stampatutto();
		    

	return 0;

}



float nore(float ore){
	
	float count;
	
	printf("Per quanti ore vuoi parcheggiare?\n");
		   scanf("%f\n",&ore);


	if( ore == 3.0)
		ore = 3.0;


	
	else if ( ore > 3.0){
		count = count + 0.5;
		ore = 3.0 + count;
	}


	
	else if ( ore < 3.0){
		count = count - 0.5;
		ore = 3.0 - count;
	}


	
	else if ( ore == 10.0)
		ore = 10.0;

	
	else if ( ore == 24.0)
		ore = 24.0;

	
	else
		printf("\n");

	
	return 	ore;
}



void stampaore(float ore){
	
		printf("ore:%f\n",ore);
	
}



void setinsert( void ){

	int n,da,a;
	
	printf("Inserisci da 1 a 4 auto:\n");
	scanf("%d\n%d\n",&da,&a);
	
	printf("da:%d\n",da);
	printf("a:%d\n",a);
}


float addebitore(float addebito){

	if(nore(addebito)>= 3.0){
		addebito = 3.0 + 0.5;
		addebito+=0.5;
	}
	else
		addebito+=3.0;
	
	if ( nore(addebito)==24.0)
		addebito = 10.0;

	printf("L'addebito è: %f\n",addebito);
	
		return addebito;
}



void stampatutto(void){

	
}

Vi ringrazio in anticipo

4 Risposte

  • Re: Problema codice adoperando funzioni

    Si può sapere cosa cerchi di fare?
    In anzi tutto cos'è questo
    
    else if ( ore == 10.0)
          ore = 10.0;
    
       
       else if ( ore == 24.0)
          ore = 24.0;
    
    La funzione setinsert cosa fa? A mio avviso niente. Sai che con le strutture riusciresti a destreggiarti meglio che con variabili che non si capisce cosa fanno?
    Ultima domanda: Riesci a distinguere la differenza tra una variabile locale e una globale?
  • Re: Problema codice adoperando funzioni

    Salve,

    La funzione "setinsert" in pratica deve fare il seguente compito:
    1) voglio decidere quante macchine voglio inserire nel garage
    es. Quante n° macchine vuoi parcheggiare? -> 5
    con queste 5 macchine inserite, adesso posso capire quante ore rimangono parcheggiati nel garage e quanto è il costo.
    2) Le ore calcolate si basa nel seguente schema:
    - per ogni ora si addebita 0.50 centesimi
    - fino a tre ore si addebita 2.00 euro
    - più di tre ore si addebita da partire con 2.00 euro + 0.50 ogni ora che avanza
    - fino a 24.00 ore si addebita 10.00 euro
    3) Le variabili locali è definito all'interno di un sottobloccho di una funzione
    4) Le variabili globali è definito globalmente per tutti i sottoblocchi di una funzione o al di fuori.

    Il problema che non sò come mi devo organizzare per fare un programma.
    Vi chiedo un aiuto!!
  • Re: Problema codice adoperando funzioni

    Quindi una struttura del tipo
    
    struct
    {
        int id_macchina;
        float oreParcheggio;
        float addebito;
    }
    
    può fare al tuo caso. Poi puoi avere un array di questa struttura che potrebbe significare il parcheggio come struttura fisica.
    Una volta che hai riempito il tuo array con le macchine e ore di parcheggio puoi calcolare per ogni macchina l'addebito. Alla fine farai la somma delle ore e la somma degli addebiti scansionando l'array delle strutture.
    La variabile globale (oppure locale nel main) sarà solo l'array delle strutture.
  • Re: Problema codice adoperando funzioni

    Salve,

    Io vorrei evitare di utilizzare le strutture e gli array.
    voglio utilizzare solo le funzioni, è possibile?
    Come si deve organizzare con le funzioni?
Devi accedere o registrarti per scrivere nel forum
4 risposte