2013-05-05 75 views
-3

嗨我想爲我的程序使用數組做一個if/then語句。但是,我收到一個錯誤,下面是我的函數定義。使用If/Then與陣列

錯誤:ISO C++禁止指針和整數數組之間的比較

char gradefn(float courseavg [7]){ 
char lettergrade; 
if(courseavg>=90)(lettergrade='A'); 
else if(courseavg>=80)(lettergrade='B'); 
else if(courseavg>=70)(lettergrade='C'); 
     else lettergrade='F'; 

}//END OF GRADEFN 

嘿我試圖用一個for循環,但我想可能有語法有點偏離?

// Below is my prototype 
char gradefn(float courseavg [7]); 

//Function Def. 
char gradefn(float courseavg[7]){ 
char lettergrade; 
for(int row=0; row<7; row++) if (courseavg>=90) (lettergrade='A'); 
} 

回答

2

您正在向gradefn傳遞七個項目的數組,而不是一個數字。您需要計算平均值,然後將結果與百分位數進行比較:

float total = 0; 
for (int i = 0 ; i != 7 ; i++) { 
    total += courseavg[i]; 
} 
float avg = total/7.0; 
if (avg > 90) lettergrade = 'A'; 
else ... 
+0

或者,使用'std :: accumulate'將它們相加。 – chris 2013-05-05 02:54:26

+0

@chris這幾乎肯定是針對那些還沒有從標準庫入手的學生的學習練習。使用'aggregate'就是應該在生產環境中編碼的代碼,但是爲了這個,我們又不會使用固定大小的「普通」數組,而是決定使用更靈活的容器,比如'std :: vector'。 – dasblinkenlight 2013-05-05 10:07:39

+0

那麼,至少它可能會讓他們看到並意識到它存在。一個大問題是不知道有一個工具。 – chris 2013-05-05 14:34:20