2013-07-09 16 views
-3

這個程序應該使用一個函數來收集4個等級到一個數組中,使用另一個函數來平均等級,另一個函數顯示平均值和4個原始等級。程序返回垃圾函數形成數組後

的4個等級必須是0到100之間和

我有這樣的程序打印出級[2]只是爲了測試它,但它總是輸出垃圾。 這是什麼,我在這裏做錯了?

此外,如果我嘗試在第一次沒有「float grade [5]」行的情況下調用getGrades(grade,5),它會告訴我「grade」是未聲明的標識符。這導致我相信我在編寫這個函數時做了錯誤的事情。

感謝

#include <iostream> 

using namespace std; 

float computeAverage(float exam1, float exam2, float exam3, float exam4) 
{ 
    float average; 
    average = exam1*.2 + exam2*.2 + exam3*.2 + exam4*.4; 
    return average; 
} 

void getGrades(float a[], int size) 
{ 
    int i; 
    float num; 
    for (i=0; i<4; i++) 
    { 
     cin >> num; 
     if (num>=0 && num <=100) 
      num = a[i]; 
     else 
     { 
      cout << "That number is out of range."; 
      i--; 
     } 
    } 
} 


int main() 
{ 

float grade[5]; 

getGrades(grade,5); 

grade[4] = computeAverage(grade[0], grade[1], grade[2], grade[3]); 

cout << grade[2]; 






    return 0; 
} 

回答

5

您還沒有getGrades功能就是你得到垃圾值的原因在grade陣列中存儲的值。

這種變化: -

num = a[i]; 

a[i] = num; 
+0

啊,謝謝!這總是很簡單的事情。 – bc8787

+0

歡迎您:) –

0
num = a[i]; 

應該

a[i] = num; 

歡迎計算機科學:-)