Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    5

    C++ operazione

    salve a tutti, sono nuovissima, e logicamente vengo tra voi...geni dell'informatica da "profana".
    stavo provando uno dei "classici" esercizi di chi è alle prime armi con C++, passato quello del saluto...la conversine da gradi celsius a fahrenheit.

    per provare ho fatto una piccola tabella da 1 a 10.....ma come noterete il risultato della conversione è sempre 0.....

    so che troverete un errore grossolano.....ma solo voi potete aiutarmi!!!!!

    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>

    int main()
    {
    int celsius;
    int fahrenheit;

    printf( "%4s%21s", "CELSIUS", "FAHRENHEIT");

    for ( celsius = 1; celsius <= 10; celsius++ ) {

    fahrenheit = 5 * (celsius + 32)/9 ;
    printf( "%4d%21.2f\n", celsius, fahrenheit);
    }

    system("pause");
    return 0 ;

    }

    ciao a grazie

    ESTATE

  2. #2
    Il problema deriva dalla printf( "%4d%21.2f\n", celsius, fahrenheit); in quanto tenti di stampare un float: %21.2f passando però un int.

    Se vuoi risolvere in modo semplice ma poco funzionale in quanto perdi i decimali cambia così:

    codice:
    printf( "%4d \t %21.2f\n", celsius, (float)fahrenheit);
    o meglio se vuoi ottenere una conversione ottimale:

    codice:
    #include <stdio.h>
    #include <math.h>
    #include <stdlib.h>
    
    int main()
    {
    	int celsius;
    	float fahrenheit;
    	printf( "%4s%21s \n", "CELSIUS", "FAHRENHEIT");
    	for ( celsius = 1; celsius <= 10; celsius++ ) 
    	{
    		fahrenheit = (float) 5 * (celsius + 32)/9;
    		printf( "%4d \t %21.2f\n", celsius, fahrenheit);
    	}
    	system("pause");
    	return 0;
    }

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: C++ operazione

    Originariamente inviato da estate
    so che troverete un errore grossolano.....ma solo voi potete aiutarmi!!!!!
    Ciao, ci sono 3 cose da sistemare:

    a) Metti \n al fondo della stringa di formato nella prima printf (questa è una quisquilia, è solo per la visualizzazione).

    b) Dichiara fahrenheit non come int ma come float.

    c) Nella espressione della conversione metti 9.0f invece di 9. Questo serve per fare in modo che la divisione avvenga come floating-point e non come intera (che troncherebbe i decimali).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    5
    ma grazie.... ad entrambi.....

    a questo punto c'è un modo per mettere le colonne in orizzontale???

    (p.s. x andbin grazie della spiegazione....a questo livello ci vuole...eccome!!! )

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    5
    ...nn riesco a trovare un modo per fare la tabella orizzontale........

    ...help!!!!

  6. #6
    Non ho ben capito cosa intendi... una roba del genere?

    CELSIUS 1 2 3 4 ..........
    FAHRENHEIT 18.33 18.89 19.44 20.00 ..........

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    5
    esattamente.....è possibile farlo????

    non riesco a trovare il modo per farlo....e mi fa innervosire mooooooolto!!!!!

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da estate
    esattamente.....è possibile farlo????
    Certo che è possibile. Però devi fare 2 cicli for. Nel primo stampi i valori di celsius. Nel secondo fai la conversione e stampi i valori in fahrenheit.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    5
    .....vado a provare....THANKS

  10. #10
    Utente di HTML.it L'avatar di Eris
    Registrato dal
    Feb 2004
    Messaggi
    511

    anche io stavo provando

    codice:
    #include <stdio.h>
    #include <stdlib.h>
    
    int main(int argc, char *argv[])
    {
        double celsius;
        double farenaith=0;
        
        printf("Inserisci un numero intero da 0 a 212\n");
        scanf("%lf",&farenaith);
        
        if (farenaith <= 212) {
        celsius = (farenaith-32)*(5/9);
        }
        
        else if (farenaith>212){
        printf("Errore\n\n");}
        
       
      printf("La temperatura in Celsius e\':\n%+lf\n\n", celsius);
      system("PAUSE");	
      return 0;
    }
    e ovviamente non va e non so perchè!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.