Computer >> 컴퓨터 >  >> 프로그램 작성 >> C 프로그래밍

남학생 또는 여학생의 성적을 찾는 C 프로그램

<시간/>

일부 표시가 제공되고, 표시[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]
  • 성별이 'b'와 같은 경우:
    • b_sum을 반환
  • g_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