[C] conversione celsius fahrenheit

di
Anonimizzato18456
il
6 risposte

[C] conversione celsius fahrenheit

Buongiorno a tutti, l'esercizio chiede di usare le funzioni per convertire gradi celsius in fahrenheit o viceversa
potreste aiutarmi? credo che il mio errore sia nello switch
#include <stdio.h>
int celsius (int x); // da fahrenheit a celsius
int fahrenheit (int y); // da celsius a fahrenheit
int main()
{
    int n; char c;
    printf("Inserisci una temperatura: \n");
    scanf("%d", &n);
    printf("E' un grado Celsius o Fahrenheit? (c/f)\n");
    scanf("%c", &c);

    switch ( c ) {
    case 'c' : printf ("Il grado corrispondente in Fahrenheit è %d\n", fahrenheit (n));
    break;
    case 'f' : printf("Il grado corrispondente in Celsius è %d\n", celsius(n));
    break;
    default : printf("Errore! Inserire c per indicare un grado Celsius e f per Fahrenheit");
    }
    return 0;
}
int fahrenheit (int y)
{
    y = y * 1,8 + 32;
    return y;
}
int celsius (int x)
{
    x = (x - 32) / 1,8;
    return x;
}

6 Risposte

  • Re: [C] conversione celsius fahrenheit

    Ti basta aggiungere una pulita del buffer fflush(stdin) tra una scanf e l'altra poichè l'invio può dare questo tipo di problemi.
  • Re: [C] conversione celsius fahrenheit

    Cos'è quell' 1,8 che hai messo? (rifletti prima di rispondere di getto)
  • Re: [C] conversione celsius fahrenheit

    Ehm non so esattamente cosa sia, ho preso la formula da wikipedia nella pagina grado celsius > conversione

    EDIT
    ho aggiunto fflush(stdin) e ho risolto il problema dello switch, ma ora noto che i risultati sono sbagliati quindi immagino ci sia qualcosa che non va nella funzione
  • Re: [C] conversione celsius fahrenheit

    Siamo proprio alle basi delle basi ... devi scrivere 1.8 non 1,8 ...
  • Re: [C] conversione celsius fahrenheit

    Ah...
    grazie mille
  • Re: [C] conversione celsius fahrenheit

    Ma siamo sicuri non ci siano dei cast occulti?
Devi accedere o registrarti per scrivere nel forum
6 risposte