Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    [C] if, else if....

    Devo fare con if, else if quando il reddito è inferiore a 7000 devo pagare zero tasse, quando è tra 7000 e 13000 un 13%, e così via...

    ho provato, ma non riesco, sbaglio sicuramente qualcosa...


    codice:
    #include 
    
    int main()
    {
        float reddito;
        float tasse;
    
        printf("Inserire il reddito in euro (es: 13402,32):\n");
        scanf("%f", &reddito);
    
        if(reddito < 7000)
           printf ("sei esente dalle tasse \n Importo dovuto è 0"
        elseif (reddito > 7000; reddito < 13000)
               printf("aliquota da pagare è 13% \n", reddito - ((reddito*13)/100));
               
        
           
        printf("\n\nPremi un tasto per uscire");
        fflush(stdin);
        getchar();
        return 0;
    }

    confido nella vostra preparazione

    CIAO

  2. #2

    Re: [C] if, else if....

    Originariamente inviato da enrico999
    ho provato, ma non riesco, sbaglio sicuramente qualcosa...
    Leggi gli errori del compilatore.

    - Hai dimenticato di inserire una libraria dopo l'include inziale, presumibilmente stdio.h
    - Non hai chiuso la parentesi della prima printf, nè messo i ;
    - Il costrutto OR si fa con || e non con ;

    else if (reddito > x || ...)

  3. #3
    accidenti, quanti errori....

    ho corretto tutto, ma ottengo comunque degli errori

    codice:
    #include <stdio.h>
    
    int main()
    {
        float reddito;
        float tasse;
    
        printf("Inserire il reddito in euro (es: 13402,32):\n");
        scanf("%f", &reddito);
    
        // completare usando la struttura if .... elseif ...elseif ..... else
        if(reddito < 7000)
           printf ("sei esente dalle tasse \n Importo dovuto è 0");
        else if(reddito > 7000 || reddito < 13000)
               printf("aliquota da pagare è 13% \n", (reddito - ((reddito*13)/100)));
        else if(reddito < 13000)
             printf("aliquota 20% \n", (reddito - ((reddito*20)/100)));
           
        printf("\n\nPremi un tasto per uscire");
        fflush(stdin);
        getchar();   // trucco per far rimanere aperta la finestra di testo
        return 0;
    }
    non riesco a capire dove sbaglio....

  4. #4
    Il tuo programma funziona. Come fa a darti degli errori?

    Prima compila e poi esegui, dovrebbe andare tutto alla perfezione.

  5. #5
    Be un piccolo errore di concetto credo ci sia...se reddito è 7000 viene applicata l'aliquota del 13%, per i redditi superiori a 13000 non viene applicata alucuna aliquota.
    Inoltre credo che quello che vuoi è che se reddito è tra 7000 e 13000 applichi il 13%, quindi devi usare un and che si fa con &&.
    Io direi che devi fare così:

    if(reddito < 7000)
    printf ("sei esente dalle tasse \n Importo dovuto è 0");
    else if( (reddito >= 7000) && (reddito <= 13000) )
    printf("aliquota da pagare è 13% \n", (reddito - ((reddito*13)/100)));
    else
    printf("aliquota 20% \n", (reddito - ((reddito*20)/100)));

    ancora meglio:
    if(reddito < 7000)
    printf ("sei esente dalle tasse \n Importo dovuto è 0");
    else if( reddito <= 13000 )
    printf("aliquota da pagare è 13% \n", (reddito - ((reddito*13)/100)));
    else
    printf("aliquota 20% \n", (reddito - ((reddito*20)/100)));

    Ovviamente ho considerato che:
    tra 0 e 7000 escluso -> no tasse
    tra 7000 e 13000 incluso -> 13 %
    oltre i 13000 -> 20 %

    Spero di non aver detto c....e

  6. #6
    non so come fa, ma gli errori sono questi:

    [Warning] unknown conversion type character 0xa in format

    [Warning] too many arguments for format

    [Warning] unknown conversion type character 0xa in format

    [Warning] too many arguments for format

    [Warning] unused variable `tasse'


    e poi quando lo eseguo non mi calcola l'aliquota da pagare, ma se ad esempio inserisco 10000 mi dice: aliquota da pagare è 13, (inoltre già che ci sono prima del tredici mi mette uno strano simbolo, una spece di p, come faccio a toglierla?)


    scusate, lo so, forse sto facendo troppe domande...

  7. #7
    In effetti non avevo notato un problema:
    printf("aliquota da pagare è 13% \n", reddito - ((reddito*13)/100));
    non va bene...la printf usa i % per la definizione dei parametri variabili...prova così:
    printf("aliquota da pagare è 13%% è %d\n", reddito - ((reddito*13)/100));

    la variabile tasse toglila perchè non la usi.

  8. #8
    ok, ho riscritto un po' meglio il codice, ma mi da ancora errore...

    codice:
    #include <stdio.h>
    
    int main()
    {
        float reddito;
    
        printf("Inserire il reddito in euro (es: 13402,32):\n");
        scanf("%f", &reddito);
    
        // completare usando la struttura if .... elseif ...elseif ..... else
        if(reddito < 7000)
           printf ("sei esente dalle tasse \n Importo dovuto è 0");
        else if((reddito > 7000) && (reddito < 13000))
               printf("aliquota da pagare è 13%% %d\n", ((reddito*13)/100);
        else
             printf("aliquota 20%% %d\n", ((reddito*20)/100);
           
        printf("\n\nPremi un tasto per uscire");
        fflush(stdin);
        getchar();   // trucco per far rimanere aperta la finestra di testo
        return 0;
    }

    l'errore che mi da è questo:

    syntax error before ';' token

  9. #9
    Attendo alle parentesi

    else if((reddito > 7000) && (reddito < 13000))
    printf("aliquota da pagare è 13%% %d\n", ((reddito*13)/100);
    else
    printf("aliquota 20%% %d\n", ((reddito*20)/100);

    dovrebbe essere:

    else if((reddito > 7000) && (reddito < 13000))
    printf( "aliquota da pagare è 13%% %d\n", (reddito*13) /100);
    else
    printf("aliquota 20%% %d\n", (reddito*20)/100);

    Comunque insieme all'errore mettici anche riga e colonna...è più semplice da trovare l'errore in questo modo

  10. #10
    ho tolto le parentesi...

    ora il codice è questo:

    codice:
    #include <stdio.h>
    
    int main()
    {
        float reddito;
    
        printf("Inserire il reddito in euro (es: 13402,32):\n");
        scanf("%f", &reddito);
    
        // completare usando la struttura if .... elseif ...elseif ..... else
        if(reddito < 7000)
           printf ("sei esente dalle tasse \n Importo dovuto è 0");
        else if((reddito > 7000) && (reddito < 13000))
               printf("aliquota da pagare è 13%% %d\n", (reddito*13)/100);
        else
             printf("aliquota 20%% %d\n", (reddito*20)/100);
           
        printf("\n\nPremi un tasto per uscire");
        fflush(stdin);
        getchar();   // trucco per far rimanere aperta la finestra di testo
        return 0;
    }
    mi da sempre due errori

    15 [Warning] int format, double arg (arg 2)
    17 [Warning] int format, double arg (arg 2)


    e poi eseguendo il programma non mi calcola niente, se metto come reddito 10000, mi dice che devo pagare 0...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.