Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    69

    Fare percentuale con constanti in C?

    Salve a tutti! Chiamo in causa voi del forum di HTML.it perché non riesco proprio a capire come effettuare una percentuale con i valori delle costanti. Vi posto il codice sorgente del mio programma:


    #include <stdio.h>

    #define PI 30
    #define SC 20

    main ()

    {
    int eta, ps;

    printf("inserisci la tua eta': ");
    scanf("%d", &eta);

    if (eta<12);
    {
    ps = PI/100*SC; /* nella compilazione DevC++ mi da tutto ok, ma eseguendo il programma il risultato è 0! */

    printf("Ecco il prezzo finale: %d", ps);


    }



    getchar();
    getchar();

    }

    Come mai nell'espressione per assegnazione del valore alla variabile ps il risultato è 0?
    Grazie anticipatamente per l'aiuto!

  2. #2

    Re: Fare percentuale con constanti in C?

    Originariamente inviato da playROK
    if (eta<12);
    ps = PI/100*SC;

    Come mai nell'espressione per assegnazione del valore alla variabile ps il risultato è 0?
    Grazie anticipatamente per l'aiuto!
    Perchè è una divisione tra interi. Quindi PI/100 = 0. E 0*SC = 0. Fai un cast a double per PI e SC e dovrebbe andare. Attenzione al punto e virgola sull'if.

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    69
    Facendo PI*SC/100 viene perfettamente!
    Comunque ora sono giunto alla seconda parte del mio programma e mi sono imbattuto in un'altro problema:


    #include <stdio.h>

    #define PI 30
    #define SC1 20
    #define SC2 50

    main ()

    {
    int eta, ps, ps2;

    printf("inserisci la tua eta': ");
    scanf("%d", &eta);

    if (eta<12) // primo if


    ps = (PI*SC1/100); /* nella compilazione DevC++ mi da tutto ok, ma eseguendo il programma il risultato è 0! */

    printf("Hai meno di 12 anni! Ecco il prezzo finale: %d", ps);



    else if (eta>60)

    ps2 = PI*SC2/100;

    printf("Hai piu' di 60 anni! Ecco il prezzo finale: %d", ps2);

    else

    printf("Non avrai nessuno sconto!");


    getchar();
    getchar();

    }



    Mi da diversi errori nel log della compilazione... come mai?

  4. #4
    Originariamente inviato da playROK
    Facendo PI*SC/100 viene perfettamente!
    Per puro caso.

    Originariamente inviato da playROK
    Comunque ora sono giunto alla seconda parte del mio programma e mi sono imbattuto in un'altro problema:
    Mancano le parentesi graffe nei blocchi if/else.

    Quando posti del codice, inseriscilo tra i tag CODE, altrimenti si perde la formattazione.

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Controlla le if e le else ... se vuoi eseguire più istruzioni, devi usare le parentesi dopo la if o dopo la else

    if (...)
    {
    ...
    }
    else
    {
    ...
    }
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2010
    Messaggi
    69
    Ho appena risolto! Infatti erano le graffe che mancavano e il punto e virgola che mi è stato suggerito di togliere da ESSE-EFFE! Le prossime volte cercherò di utilizzare il tag CODE per il codice sorgente! Grazie ancora a tutti!

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.