2013-05-05 2 views
-3

안녕하세요 배열을 사용하여 내 프로그램에 대한 if/then 문을 준비하려고합니다. 그러나 오류가 발생했습니다. 아래 함수 정의입니다.If/Then Using Arrays

오류 : 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 

포인터와 정수 배열의 비교를 금지하지만 난 구문 조금 떨어져있을 수 있습니다 생각하십니까?

// 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에는 7 개의 항목이 아닌 7 개의 항목 배열이 전달됩니다. 평균을 계산 한 다음 결과를 백분위 수와 비교해야합니다.

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

+0

@chris 이것은 아직 표준 라이브러리로 시작하지 않은 학생들을 대상으로하는 학습 운동입니다. 'aggregate '를 사용하면 프로덕션에서 코딩해야하는 것이지만, 다시 한번 고정 된 크기의 "평범한"배열을 사용하지 않고,'std :: vector'와 같이 좀 더 유연한 컨테이너를 사용하기로 결정합니다. – dasblinkenlight

+0

글쎄, 적어도 그것은 그것들을보고 그것이 존재한다는 것을 깨닫게 할 수도있다. 큰 문제는 도구가 있다는 것을 모르는 것입니다. – chris