Giả sử chúng ta có một mảng được gọi là dấu, trong đó một số dấu được cho trước, tất cả các dấu chỉ số chẵn như dấu [0], dấu [2], v.v. đều là dấu của con trai và tất cả dấu được lập chỉ mục chẵn là dấu của con gái. Chúng tôi có một đầu vào khác được gọi là giới tính. Giá trị của giới tính là 'b' hoặc 'g', khi là 'b', chúng ta sẽ phải trả về tổng điểm của tất cả các bé trai và khi là 'g' trả về tổng điểm cho tất cả các bé gái. (Kích thước của mảng là N)
Vì vậy, nếu đầu vào giống như N =9 dấu =[8,5,2,6,7,5,9,9,7] giới tính ='g', thì đầu ra sẽ là 25 vì 5 + 6 + 5 + 9 =25.
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- g_sum:=0
- b_sum:=0
- để khởi tạo i:=0, khi i
- nếu tôi mod 2 là 1, thì:
- g_sum:=g_sum + mark [i]
- Mặt khác
- b_sum:=b_sum + dấu [i]
- nếu tôi mod 2 là 1, thì:
- trả về b_sum
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
#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); }
Đầu vào
{8,5,2,6,7,5,9,9,7}, 'g'
Đầu ra
25