C 程序用于查找男生或女生学生的分数
cserver side programmingprogramming
假设我们有一个名为 marks 的数组,其中给出了一些分数,所有偶数索引的分数(如 marks[0]、marks[2] 等)都表示男生的分数,所有偶数索引的分数都表示女生的分数。我们还有另一个输入,称为 gender。gender 的值是 'b' 或 'g',当它是 'b' 时,我们必须返回所有男生的分数总和,当它是 'g' 时,我们必须返回所有女生的分数总和。 (数组大小为 N)
因此,如果输入为 N = 9 分数 = [8,5,2,6,7,5,9,9,7] 性别 = 'g',则输出将为 25,因为 5 + 6 + 5 + 9 = 25。
为了解决这个问题,我们将遵循以下步骤 −
- g_sum := 0
- b_sum := 0
- 初始化 i := 0,当 i < n,更新(将 i 增加 1),执行:
- 如果 i mod 2 为 1,则:
- g_sum := g_sum + marks[i]
- 否则
- b_sum := b_sum + marks[i]
- 如果 i mod 2 为 1,则:
- 如果gender与"b"相同,则:
- 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