2013-05-05 49 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