Giả sử có mảng marks lưu điểm số, các chỉ số chẵn (0, 2, 4...) là điểm của nam, chỉ số lẻ (1, 3, 5...) là điểm của nữ. Nhập thêm ký tự gender ('b' hoặc 'g'), nếu 'b' trả về tổng điểm nam, nếu 'g' trả về tổng điểm nữ.
Ví dụ: N = 9, marks = [8,5,2,6,7,5,9,9,7], gender = 'g' → tổng nữ = 5+6+5+9 = 25.
Giải thuật
- Khởi tạo g_sum = 0, b_sum = 0
- Duyệt i từ 0 đến n-1: nếu i%2==1 thì g_sum += marks[i], ngược lại b_sum += marks[i]
- Trả về b_sum nếu gender=='b', ngược lại g_sum
Ví dụ minh họa
#include <stdio.h>
#define N 9
int solve(int marks[], int n, char gender) {
int g_sum = 0, 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);
return 0;
}
Đầu vào
{8,5,2,6,7,5,9,9,7}, 'g'
Đầu ra
25