2012-03-14 59 views
1

我認爲我的問題很愚蠢......我的函數不返回一個十進制值,而是一個int值......我該如何解決這個問題?謝謝!平方根函數(math.h) - C

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

     int main() 
     { 
      //Dichiarazione variabili 
      int nCasuale, i, MAX = 0, min = 100; 
      float radice; 

      //Generazione numeri casuali 
      srand(time(NULL)); 

      for (i = 0; i < 10; ++i) //Ciclo numeri casuali 
      { 
       nCasuale = 1 + rand() % 100; //Casuale tra 1 e 100 
       printf("Numero casuale[%d]: %d\n", i, nCasuale); //Lo stampo 

       radice = sqrt(nCasuale); //Radice del numero 
       printf("Radice quadrata(%d)= %2.f\n\n", nCasuale, radice); //Stampo 

等等......

我不明白爲什麼...感謝幫助=)

+0

你是什麼意思「它返回一個int值」?你得到了什麼產出,你期望什麼? – 2012-03-14 13:04:13

+0

,因爲你使用的是int,而main被設置爲返回一個int。 – Brian 2012-03-14 13:04:59

+1

''sqrt()''返回一個double,所以將''radice''定義爲double或使用''sqrtf()''。 – ckruse 2012-03-14 13:05:57

回答

11

要打印的平方根與格式說明"%2.f",這告訴printf()抑制小數點後的任何數字。

你可能意思是"%.2f"得到兩個小數位。

+0

天啊!錯誤的錯誤...非常感謝! – 2012-03-14 13:15:13

2

我希望this link有你需要清除你的疑惑。