Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
01/12/10 11:33
ColonelCurtiss
Ragazzi, devo creare un programma che calcoli la lunghezza dell'ipotenusa di un triangolo rettangolo prendendo come dati i due lati. La traccia mi dice di farlo tramite funzione, e io ho fatto così, ma quando vado ad eseguire il programma, come risultato mi restituisce sempre 1.#INF00.
Qualcuno potrebbe dirmi dove sbaglio?

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

double ipotenusa (double cat1, double cat2);

int main()
{
    double cat1;
    double cat2;
    
    printf("Inserire i due cateti: ");
    scanf("%f %f", &cat1, &cat2);
    
    printf("L'ipotenusa del triangolo rettangolo e' %f\n", ipotenusa(cat1, cat2));
    
    system("pause");
    return 0;
    
}

double ipotenusa (double cat1, double cat2)
{
       double potenza = 00.0;
       double radice = 00.0; 
       
       potenza = (cat1 * cat1) + (cat2 * cat2);
       
       radice = sqrt (potenza);
       
       return radice;
       
}
aaa
01/12/10 11:49
HeDo

sostituisci tutti i double con float
aaa
01/12/10 11:58
ColonelCurtiss
Postato originariamente da HeDo:


sostituisci tutti i double con float


Ah, così funziona, grazie. Mi sono, però, dimenticato di specificare che la traccia mi dice testualmente: "La funzione dovrà ricevere due argomenti di tipo double e restituire l'ipotenusa come un double"...
aaa
01/12/10 12:03
HeDo
Postato originariamente da ColonelCurtiss:

Postato originariamente da HeDo:


sostituisci tutti i double con float


Ah, così funziona, grazie. Mi sono, però, dimenticato di specificare che la traccia mi dice testualmente: "La funzione dovrà ricevere due argomenti di tipo double e restituire l'ipotenusa come un double"...


il problema sta nella printf: cplusplus.com/reference/clibrary/cstdio/printf/

scrivi anche che compilatore stai utilizzando.
aaa
01/12/10 15:21
ColonelCurtiss
Postato originariamente da HeDo:

il problema sta nella printf: cplusplus.com/reference/clibrary/cstdio/printf/

scrivi anche che compilatore stai utilizzando.


Uso Dev-C++ su Windows 7.
aaa
01/12/10 16:28
nihal
Basta che nella printf usi %lf al posto di %f...
aaa
01/12/10 20:14
ColonelCurtiss
Postato originariamente da nihal:

Basta che nella printf usi %lf al posto di %f...


Grazie, tutto risolto.
aaa