일부 표시가 제공되고, 표시[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