สมมติว่าเรามีอาร์เรย์ที่เรียกว่า เครื่องหมาย ซึ่งจะมีการให้เครื่องหมาย เครื่องหมายดัชนีทั้งหมด เช่น เครื่องหมาย[0] เครื่องหมาย[2] และอื่นๆ เป็นเครื่องหมายของเด็กผู้ชาย และเครื่องหมายที่จัดทำดัชนีทั้งหมดถือเป็นเครื่องหมายสำหรับเด็กผู้หญิง เรามีข้อมูลอื่นที่เรียกว่าเพศ ค่าของเพศคือ '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
- ถ้าฉัน mod 2 คือ 1 แล้ว:
- g_sum :=g_sum + เครื่องหมาย[i]
- มิฉะนั้น
- b_sum :=b_sum + เครื่องหมาย[i]
- ถ้าฉัน mod 2 คือ 1 แล้ว:
- ส่งคืน b_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