สมมติว่าเรามีอาร์เรย์ที่เรียกว่า เครื่องหมาย ซึ่งจะมีการให้เครื่องหมาย เครื่องหมายดัชนีทั้งหมด เช่น เครื่องหมาย[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