C语言程序:查找男生或女生的分数


假设我们有一个名为marks的数组,其中包含一些分数,所有偶数索引的分数(如marks[0]、marks[2]等)代表男生的分数,所有奇数索引的分数代表女生的分数。我们还有另一个输入gender。gender的值为'b'或'g',当为'b'时,我们需要返回所有男生的分数总和;当为'g'时,返回所有女生的分数总和。(数组大小为N)

例如,如果输入为N = 9,marks = [8,5,2,6,7,5,9,9,7],gender = 'g',则输出为25,因为5 + 6 + 5 + 9 = 25。

为了解决这个问题,我们将遵循以下步骤:

  • g_sum := 0
  • b_sum := 0
  • for i := 0 to n-1 do
    • if i mod 2 = 1 then
      • g_sum := g_sum + marks[i]
    • else
      • b_sum := b_sum + marks[i]
  • if gender = 'b' then
    • return b_sum
  • return 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

更新于:2021年10月8日

839 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告