[C] Affitto bungalow

di il
6 risposte

[C] Affitto bungalow

Salve a tutti. In un compito di informatica mi è stato consegnato questo testo: "Un campeggio vuole calcolare il costo degli affitti dei suoi bungalow. Scrivi un programma che effettui il calcolo dell'affito di un bungalow (massimo per 3 settimane) tenendo presente le seguenti tariffe: Quota fissa €50, una settimana €200, due settimane €350, tre settimane €450. Eventuale supplemento lenzuola 10 € a settimana."

Allego il codice:

#include <stdio.h>

int main(){
  int importo=50,settimane,imp_lenzuola=0;
  char lenzuola;

  printf("Quante settimane soggiornera' (da 1 a 3)? ");
  scanf("%d",&settimane);
  printf("Ha bisogno delle lenzuola (y/n)? ");
  scanf(" %c",&lenzuola);

  if(lenzuola=='y') imp_lenzuola=10*settimane;

  importo+=imp_lenzuola;

  if(settimane==1)
  importo+=200;
  else if(settimane==2)
  importo+=350;
  else if(settimane==3)
  importo+=450;
  else{
    printf("Errore: il soggiorno dev'essere di minimo una settimana e non oltre 3 settimane!");
    importo=0;
}
  printf("L'importo da pagare e' di euro %d\n",importo);
}
Vorrei sapere se c'è un modo più efficiente per risolvere il problema. Grazie in anticipo!

6 Risposte

  • Re: [C] Affitto bungalow

    Potresti usare lo switch case....così eviti questa cascata di if....else...if!! Nel caso di default inserisci il messaggio d'errore
  • Re: [C] Affitto bungalow

    Default non è una variabile
  • Re: [C] Affitto bungalow

    Concordo con AmedeoF, in questi casi in cui le condizioni sono "variabile==costante" l'istruzione switch è perfetta. Forse non risparmi molte righe, ma risulta sicuramente più chiaro e ordinato. Poi come ha sempre suggerito AmedeoF, nel caso default, puoi inserire il messaggio d'errore, che verrà stampato proprio quando il numero inserito non rientra nei casi precedenti
  • Re: [C] Affitto bungalow

    Swtich e case non potevo usarlo dato che ancora in classe non è stato affrontato. Non ci sono altri modi per migliorare il codice?
  • Re: [C] Affitto bungalow

    A questo punto, prima di rispondere, bisogna sapere cosa hai fatto e cosa no.
  • Re: [C] Affitto bungalow

    oregon ha scritto:


    A questo punto, prima di rispondere, bisogna sapere cosa hai fatto e cosa no.
    Allora, io studio da autodidatta e sono arrivato oltre. In classe però posso utilizzare solamente le istruzioni fatte con gli altri. Siamo arrivati ad if e else.
Devi accedere o registrarti per scrivere nel forum
6 risposte