Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C หาคะแนนนักเรียนแยกชายหญิงจากอาร์เรย์


คำอธิบายปัญหา

สมมติว่ามีอาร์เรย์ marks ที่เก็บคะแนน โดยดัชนีคู่ (0, 2, 4...) เป็นคะแนนของผู้ชาย และดัชนีคี่ (1, 3, 5...) เป็นคะแนนของผู้หญิง มีอินพุต gender เป็น 'b' หรือ 'g' ถ้าเป็น 'b' คืนผลรวมคะแนนผู้ชาย ถ้าเป็น 'g' คืนผลรวมคะแนนผู้หญิง (ขนาดอาร์เรย์คือ N)

ตัวอย่าง

หากอินพุตเป็น N = 9, marks = [8,5,2,6,7,5,9,9,7], gender = 'g' ผลลัพธ์จะเป็น 25 เพราะ 5+6+5+9 = 25

ขั้นตอนการแก้ปัญหา

  1. กำหนด g_sum = 0, b_sum = 0
  2. วนลูป i จาก 0 ถึง n-1:
    • ถ้า i % 2 == 1 (ดัชนีคี่) บวกเข้า g_sum
    • อื่นๆ บวกเข้า b_sum
  3. ถ้า gender == 'b' คืน b_sum มิฉะนั้นคืน 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);
    return 0;
}

อินพุต

{8,5,2,6,7,5,9,9,7}, 'g'

เอาต์พุต

25