Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199

    [C++] Problema conversione float ed int

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

    float calculate(float s,int k,int j,int y);
    main(){
    float f;
    float s=2;
    int k,j,y = 2;
    f = calculate(s,k,j,y);
    printf("%f\n\n",f);
    system("\npause");
    return 0;
    }

    float calculate (float s,int k,int j,int y){
    float f;
    s=(float)k/(float)j;
    f= s/(float)y;
    return f;
    }



    f dovrebbe restituire 0.5
    perchè k e j valgono 2
    2/2=1
    s=1
    1/y=2 = 0.5

    Ma printa qualcosa tipo 0.001456

    Help me

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    466

    Re: [C++] Problema conversione float ed int

    Originariamente inviato da Salvy95
    perchè k e j valgono 2
    E dove?
    Poi usa i TAG CODE..

  3. #3
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    nella main...
    codice:
    int k,j,y = 2;

  4. #4
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Con questa linea
    codice:
    int k,j,y = 2;
    Solo y viene inizializzata a 2. k e j rimangono indefinite (0 se hai un compilatore intelligente) e quindi possono avere qualsiasi valore.

    Devi inizializzarle tutte e 3:
    codice:
    int k, j, y;
    k = j = y = 2;
    Tra l'altro, cerca di evitare le dichiarazioni multiple, fai così:
    codice:
    int k;
    int j;
    int y;
    
    k = j = y = 2;
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  5. #5
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    Non so se tu davvero sia chuck norris, ma mi hai illuminato!

    Sarà che in c++ sono ancora un niubbastro, ma ero convinto che in quel modo distrubuissi il valore "2" a tutte e tre le variabili!

    Davvero ti ringrazio, e poi voglio chiederti un consiglio:
    Hai deto che è preferibili non dichiarare le variabili in quel modo, volevo chiederti se allora posso fare così, per rendere comunque il codice compatto:

    codice:
    int j=2; int k=2; int y=2;
    instead of
    codice:
    int j; int k; in y; j=2; k=2; y=2;

    e grazie ancora, adesso funziona!

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    Beh, se proprio la priorità è la compattezza del codice, dichiarare 3 int nella stessa dichiarazione non fa male a nessuno:

    codice:
    int x, y, z;
    E' ancora accettabile finchè sono 3 int, basta che non inizi a mischiare i tipi (int e int*),
    ed è decisamente più leggibile di
    codice:
    int x; int y; int z;
    Decisamente per inizializzare le variabili allo stesso valore è meglio
    codice:
    x = y = z = 2;
    Pensa se le variabili iniziassero a diventare 10, e dovessi cambiare il 2...
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  7. #7
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    Ok, sei definitivamente Chuck Norris!!
    Ti ringrazio per il prezioso aiuto, farò come dici tu nei prossimi codici dato che sei decisamente più esperto di me e quindi è giusto seguire i consigli dei più bravi!

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2008
    Messaggi
    475
    IO!?!?!?!? AAHAHAHAHAHAH xD

    Io sono un povero pirla che posta sempre domande stupide

    D'ora in poi, la tua trinità sarà MItaly, oregon e YuYevon
    "Let him who has understanding reckon the number of the beast, for it is a human number.
    Its number is rw-rw-rw-."

  9. #9
    Utente di HTML.it L'avatar di Salvy95
    Registrato dal
    Jul 2008
    Messaggi
    199
    POW! Chuck Norris ha appena colpito il forum html.it con un calcio volante a girare!

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Salvy95
    Hai deto che è preferibili non dichiarare le variabili in quel modo, volevo chiederti se allora posso fare così, per rendere comunque il codice compatto:
    codice:
    int j=2; int k=2; int y=2;
    instead of
    codice:
    int j; int k; in y; j=2; k=2; y=2;
    Sarà anche più compatto ma è molto meno leggibile... Usare tre righe per dichiarare tre variabili diverse non credo sia così difficile! Poi per il compilatore è lo stesso visto che applica tutta una sua serie di ottimizzazioni.

    Originariamente inviato da Salvy95
    POW! Chuck Norris ha appena colpito il forum html.it con un calcio volante a girare!
    Teniamo quelle stupidate di Chuck Norris fuori da questo forum, almeno..
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.