2016-11-07 34 views
0

我正在嘗試使用指針變量來計算float,但我得到一個錯誤,我無法在初始化中將'float *'轉換爲'int *'。任何想法,我會如何將浮點數轉換爲整數?非常感謝。指針變量使用數組中的float來計算平均值C++

int main() 
    { 
     float arr[SIZE]={1.1,2.2,3.3,4.4,5.5}; 
     int sum, average, avg=0; 
     int* end=arr+SIZE; 
     for(int* ptr=arr; ptr<end; ptr++) 
     { 
      sum+= *ptr; 
      avg = average/sum; 

     } 
     cout << "The sum is " << sum; 
     cout << "The average is " << avg; 

    } 
+3

爲什麼sum是int?它更有意義,它是浮動的。你正在使用'平均'沒有初始化。 – esam

+0

這是我不知道該怎麼做的部分?由於轉換。乾杯。 –

+0

'int's可能與'float'有不同的大小,這會使'end'變得相當混亂 – user4581301

回答

1

你可以解決它: 追加「F」到陣列中的每個值也只計算環路內無外的平均所以在你的程序中,您在每個總和計算後平均!!

const int SIZE = 5; // or #define SIZE 5 // I recommend using const 
float arr[SIZE] = {1.1f, 2.2f, 3.3f, 4.4f, 5.5f}; 
float sum = 0, avg = 0; 
float* end = arr + SIZE; 

    for(float* fPtr = arr; fPtr < end; fPtr++) 
     sum += *fPtr; 
    avg = sum/SIZE; 

    cout << "The sum is " << sum << endl; 
    cout << "The average is " << avg << endl; 
+0

謝謝你的回答,雖然這確實起作用,但我不能使用整數索引。 –

+0

@ChrisAshkar:現在我用了一個指針而不是索引它的工作 – Raindrop7

+0

工程就像一個魅力,非常感謝。我很高興加入這個美好的網站。 –