Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Problema convertitore da C a F [C]

    Ciao a tutti ragazzi,
    premetto che sto seguendo il mio primo corso di Informatica (in particolare, programmazione in C), quindi sono tutt'altro che ferrato.
    Ora, ho difficoltà a creare un Convertitore di Temperatura da C a F che, però, deve essere i grado da solo di capire il verso della conversione (da c a f, o viceversa) tramite l'immissione del carattere della scala prescelta.
    Comunque, come si dice, un codice vale più di mille parole.. quindi ve lo copio
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #define C0 = 0
    #define C1 = 100
    #define F0 = 32
    #define F1 = 212
    int main()
    {
    int x, conversionedac, conversionedaf;
    char scala, spazio;
    printf("Convertitore Celsius/Farenheit\n");
    scanf("%d%c%c", &x, &spazio, &scala);
    if (scala == 'C'|| scala = 'c') {
    conversionedac = (x - F0)*C1/(F1 - F0);
    printf("Conversione effettuata. Il valore da lei richiesto e : %d F\n", &conversionedac);
    }
    else {
    if (scala == 'F'|| scala == 'f'){
    conversionedaf =F0 + x * (F1 - F0)/C1;
    printf("Conversione effettuata. Il valore da lei richiesto e : %d C\n", &conversionedaf);
    }
    else {
    printf("Errore: scala non riconosciuta.\n");
    }
    }
    return 0;
    }
    Ora, i problemi che mi si presentano sono:

    13|error: lvalue required as left operand of assignment|
    14|error: expected expression before '=' token|
    15|warning: format '%d' expects type 'int', but argument 2 has type 'int *'|
    19|error: expected expression before '=' token|
    20|warning: format '%d' expects type 'int', but argument 2 has type 'int *'|
    ||=== Build finished: 3 errors, 2 warnings ===|

    Quindi è chiaro che io stia sbagliando qualcosa proprio a livello logico, anche perché la build mi fa acqua davvero da tutte le parti eppure, anche se è da 2 giorni che mi ci sbatto sopra, ancora non sono giunto ad una soluzione.. Potreste aiutarmi gentilmente?
    Vi ringrazio in anticipo!

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Esamina la linea del primo messaggio

    if (scala == 'C'|| scala = 'c') {

    Noti niente di strano?


    P.S. Nelle #define non va il segno =
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Esamina la linea del primo messaggio

    if (scala == 'C'|| scala = 'c') {

    Noti niente di strano?


    P.S. Nelle #define non va il segno =
    Effettivamente si..

    Ho provato a ri arrangiarlo, cambiando la relazione e togliendo i define.. tuttavia non gira ancora bene. Qualsiasi valore di input mi restituisce sempre "28674"!
    Allego la seconda versione, spero di non aver fatto altri errori idioti:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    int main()
    {
    float x, conversionedac, conversionedaf;
    char scala, spazio;
    conversionedac = (x*1.8) + 32;
    conversionedaf = (x - 32)/1.8;
    printf("Convertitore Celsius/Farenheit\n");
    printf("Inserire il valore da lei richiesto : ");
    scanf("%f%c%c", &x, &spazio, &scala);
    if (scala == 'C'|| scala == 'c') {
    printf("Conversione effettuata. Il valore da lei richiesto e : %f F\n", &conversionedac);
    }
    else {
    if (scala == 'F'|| scala == 'f'){
    printf("Conversione effettuata. Il valore da lei richiesto e : %f C\n", &conversionedaf);
    }
    else {
    printf("Errore: scala non riconosciuta.\n");
    }
    }
    return 0;
    }
    Vi ringrazio per l'aiuto

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Ma scusa ... tu prima fai il calcolo e poi chiedi i valori da calcolare ???
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  5. #5
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    C'è qualche & di troppo nei printf
    Per gli Spartani e Sparta usa spartan Il mio github

  6. #6
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma scusa ... tu prima fai il calcolo e poi chiedi i valori da calcolare ???
    Mamma mia, hai ragione! Non so proprio dove ho la testa..
    Quindi, infine, sistemato dovrebbe venir così:
    codice:
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    int main()
    {
    printf("Convertitore Celsius/Farenheit\n");
    float x, conversionedac, conversionedaf;
    char scala, spazio;
    printf("Inserire il valore da lei richiesto : ");
    scanf("%f%c%c", &x, &spazio, &scala);
    conversionedac = x*1.8 + 32;
    conversionedaf = (x-32)/1.8;
    
    if (scala == 'C'|| scala == 'c') {
    printf("Conversione effettuata. Il valore da lei richiesto e : %f F\n", &conversionedac);
    }
    else {
    if (scala == 'F'|| scala == 'f'){
    printf("Conversione effettuata. Il valore da lei richiesto e : %f C\n", &conversionedaf);
    }
    else {
    printf("Errore: scala non riconosciuta.\n");
    }
    }
    return 0;
    }
    Ora non vedo cosa ci sia che non va.. Eppure qualsiasi valore di input mi restituisce 0,00000 C (o F)

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Non hai tenuto conto di quello che ti ha scritto linoma...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Quote Originariamente inviata da linoma Visualizza il messaggio
    C'è qualche & di troppo nei printf
    Scusami, ma non avevo letto!

    Ma nel printf non è giusto mettere a cosa si riferiscono?
    Nel senso, ho messo solo & riferiti all'operazione che il printf mi deve stampare a video..

    Li devo togliere?

  9. #9
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Quote Originariamente inviata da ilpellegrino Visualizza il messaggio
    Scusami, ma non avevo letto!

    Ma nel printf non è giusto mettere a cosa si riferiscono?
    Nel senso, ho messo solo & riferiti all'operazione che il printf mi deve stampare a video..
    Nel tuo caso no, cerca di capire cosa è l'operatore & e nel tu caso che negl'altri che il C prevede
    Per gli Spartani e Sparta usa spartan Il mio github

  10. #10
    Quote Originariamente inviata da linoma Visualizza il messaggio
    Nel tuo caso no, cerca di capire cosa è l'operatore & e nel tu caso che negl'altri che il C prevede
    Hai completamente ragione.. Tolti gli "&", il programma funziona!
    Grazie a tutti ragazzi!

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.