কম্পিউটার টিউটোরিয়াল

সি প্রোগ্রামিং-এ একাধিক রেঞ্জ ইনক্রিমেন্ট অপারেশনের পর মডিফাইড অ্যারে প্রিন্ট করা


একটি অ্যারে arr[m] এবং একটি মান n দেওয়া থাকলে। r সংখ্যক কোয়েরি (query) দেওয়া আছে, প্রতিটি কোয়েরিতে একটি স্টার্ট এবং এন্ড ইনডেক্স থাকে। প্রতিটি কোয়েরির জন্য অ্যারেতে স্টার্ট থেকে এন্ড পর্যন্ত n যোগ করতে হবে।

উদাহরণ

Input: arr[] = {1, 2, 3, 4, 5}
query[] = { {0, 3}, {1, 2} }
n = 2

Output:
Query1: {3, 4, 5, 6, 5}
Query2: {3, 6, 7, 6, 5}

সহজ পদ্ধতি:

  • সব কোয়েরি এর মধ্যে লুপ চালিয়ে অ্যারেতে কোয়েরির স্টার্ট থেকে এন্ড পর্যন্ত n যোগ করুন।
  • প্রতিটি কোয়েরির পর পুরো অ্যারে প্রিন্ট করুন।

অ্যালগরিদম

START
STEP 1: DECLARE struct range for start AND end limits
STEP 2: FUNCTION add_tomatrix(int arr[], struct range r[], int n, int size, int m)
    FOR i = 0 to m-1
        FOR j = r[i].start to r[i].end
            arr[j] += n
        END FOR
        PRINT "Query i+1:"
        FOR k = 0 to size-1
            PRINT arr[k]
        END FOR
    END FOR
STOP

সি প্রোগ্রাম

#include <stdio.h>

struct range {
    int start, end;
};

int add_tomatrix(int arr[], struct range r[], int n, int size, int m) {
    int i, j, k;
    for (i = 0; i < m; i++) {
        for (j = r[i].start; j <= r[i].end; j++)
            arr[j] += n;
        printf("Query %d: ", i + 1);
        for (k = 0; k < size; k++)
            printf(" %d", arr[k]);
        printf("\n");
    }
}

int main() {
    int arr[] = {3, 4, 8, 1, 10};
    struct range r[] = {{0, 2}, {1, 3}, {3, 4}};
    int n = 2;
    int size = sizeof(arr) / sizeof(arr[0]);
    int m = sizeof(r) / sizeof(r[0]);
    add_tomatrix(arr, r, n, size, m);
    return 0;
}

আউটপুট

Query 1: 5 6 10 1 10
Query 2: 5 8 12 3 10
Query 3: 5 8 12 5 12

  1. C প্রোগ্রাম: অ্যারে প্যালিনড্রোম কিনা চেক করা

  2. C প্রোগ্রামে বিজোড় দৈর্ঘ্যের স্ট্রিংকে X ফরম্যাটে প্রিন্ট করা

  3. C প্রোগ্রামে অ্যারে লেফ্ট রোটেশন O(n) টাইম ও O(1) স্পেসে

  4. C প্রোগ্রামে অ্যারেতে উপাদানগুলোর শেষ অকরেন্স রিলেটিভ অর্ডারে প্রিন্ট করা