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

ความต่างสัมบูรณ์ของสมาชิกดัชนีคู่และคี่ในอาร์เรย์ (C++)

ที่นี่เราจะดูวิธีหาความต่างสัมบูรณ์ของสมาชิกที่อยู่ในดัชนีคู่และคี่ในอาร์เรย์ ความต่างสัมบูรณ์หมายถึงถ้าผลต่างเป็นลบ จะนำค่าสัมบูรณ์มาใช้ ตัวอย่างเช่น อาร์เรย์ {1, 2, 3, 4, 5, 6, 7, 8, 9} สมาชิกดัชนีคู่ (เริ่มจาก 0) คือ 1, 3, 5, 7, 9 และดัชนีคี่คือ 2, 4, 6, 8 ความต่างของดัชนีคู่คือ |1-3|=2, |2-5|=3, |3-7|=4, |4-9|=5 ส่วนดัชนีคี่ก็จะได้ 4

อัลกอริทึม

offEvenDiff(arr, n)

เริ่มต้น  even := 0, odd := 0
สำหรับ i := 0 ถึง n-1 ทำ
  ถ้า i เป็นเลขคู่ แล้ว
    even := |even - arr[i]|
  มิฉะนั้น
    odd := |odd - arr[i]|
จบลูป
คืนค่า (odd, even)
สิ้นสุด

ตัวอย่างโค้ด

#include <iostream>
#include <cmath>
using namespace std;

void oddEvenDiff(int arr[], int n, int &o, int &e) {
    int even = 0;
    int odd = 0;
    for (int i = 0; i < n; i++) {
        if (i % 2 == 0) {
            even = abs(even - arr[i]); // หาความต่างสัมบูรณ์ของดัชนีคู่
        } else {
            odd = abs(odd - arr[i]);
        }
    }
    e = even;
    o = odd;
}

int main() {
    int arr[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
    int n = sizeof(arr) / sizeof(arr[0]);
    int odd, even;
    oddEvenDiff(arr, n, odd, even);
    cout << "The odd and even differences are: " << odd << " and " << even;
    return 0;
}

ผลลัพธ์

The odd and even differences are: 4 and 5