일부 표시가 제공되고, 표시[0], 표시[2] 등과 같은 모든 짝수 인덱스 표시가 남아의 표시를 보유하고 모든 짝수 인덱싱된 표시가 여아를 위한 표시라는 배열이 있다고 가정합니다. 성별이라는 또 다른 입력이 있습니다. 성별의 값은 'b' 또는 'g'이며, 'b'이면 모든 소년의 합계를 반환해야 하고 'g'이면 모든 소녀의 점수 합계를 반환해야 합니다. (배열의 크기는 N)
따라서 입력이 N =9 mark =[8,5,2,6,7,5,9,9,7] gender ='g'와 같으면 출력은 5 + 6 + 5 + 9 =25.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- g_sum :=0
- b_sum :=0
- 초기화 i의 경우:=0, i
- i mod 2가 1이면:
- g_sum :=g_sum + 마크[i]
- 그렇지 않으면
- b_sum :=b_sum + 마크[i]
- i mod 2가 1이면:
- b_sum을 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
#include <stdio.h>
#define N 9
int solve(int marks[], int n, char gender){
int g_sum = 0;
int b_sum = 0;
for(int i = 0; i < n; i++){
if(i % 2 != 0){
g_sum += marks[i];
}else{
b_sum += marks[i];
}
}
if(gender == 'b')
return b_sum;
return g_sum;
}
int main(){
int marks[N] = {8,5,2,6,7,5,9,9,7};
char gender = 'g';
int sum = solve(marks, N, gender);
printf("%d", sum);
}
입력
{8,5,2,6,7,5,9,9,7}, 'g' 출력
25