মডিউল ৯-৫ + ৯-৬: রিভার্স অ্যারে

"অ্যারে রিভার্স" মানে অ্যারের প্রতিটি সংখ্যাকে তার বিপরীত অবস্থানে পরিবর্তন করা। অর্থাৎ, যদি একটি সংখ্যা পজিশন 1 তে থাকে তবে এর নতুন পজিশন হবে অ্যারের দৈর্ঘ্য, যদি একটি সংখ্যা পজিশন 2 তে থাকে তবে এর নতুন পজিশন হবে অ্যারের দৈর্ঘ্য - 1।

কোডঃ

#include<stdio.h>
int main()
{
    int n;
    scanf("%d",&n);
    int ar[n];
    for(int i=0;i<n;i++)
    {
        scanf("%d",&ar[i]);
    }
    int i=0,j=n-1;
    while(i<j)
    {
        int tmp=ar[i];
        ar[i]=ar[j];
        ar[j]=tmp;
        i++;
        j--;
    }
    for(int i=0;i<n;i++)
    {
        printf("%d ",ar[i]);
    }
    return 0;
}

Explanation:

এই C কোডটি একটি অ্যারের উপাদানগুলোকে উল্টো করে দেয় (reverses) এবং তারপর উল্টো করা অ্যারেটি প্রিন্ট করে।

int n;
scanf("%d",&n);
  • int n;: ভেরিয়েবল n ঘোষণা করে, যা অ্যারের আকার ধারণ করবে।

  • scanf("%d",&n);: এটি scanf ফাংশন ব্যবহার করে ব্যবহারকারীর কাছ থেকে অ্যারের আকার নিচ্ছে এবং n ভেরিয়েবলে সংরক্ষণ করছে।

int ar[n];
  • এই লাইনটি n আকারের একটি int অ্যারে ar ঘোষণা করে।

for(int i=0;i<n;i++)
{
  scanf("%d",&ar[i]);
}
  • এই লুপটি ব্যবহারকারীর কাছ থেকে অ্যারের প্রতিটি উপাদান input নেওয়া হয় এবং অ্যারেতে সংরক্ষণ করে।

    • for(int i=0;i<n;i++): এটি একটি for লুপ, যা i ভেরিয়েবলটি 0 থেকে n-1 পর্যন্ত চালায়।

    • scanf("%d",&ar[i]);: লুপের প্রতিটি iteration এ, এটি scanf ফাংশন ব্যবহার করে user এর কাছ থেকে একটি int মান নেইএবং ar[i] অবস্থানে অ্যারেতে সংরক্ষণ করে।

int i=0,j=n-1;
while(i<j)
{
  int tmp=ar[i];
  ar[i]=ar[j];
  ar[j]=tmp;
  i++;
  j--;
}
  • এই while লুপটি অ্যারের উপাদানগুলোকে উল্টো করে দেয়।

- `while(i<j)` //লুপটি চলতে থাকে যতক্ষণ না `i` `j` এর চেয়ে কম হয়। এটি নিশ্চিত করে যে লুপটি অ্যারের মাঝখান পর্যন্ত চলে এবং উভয় দিক থেকে উপাদানগুলোকে সঠিকভাবে swap করা হয়।
- `int tmp=ar[i];`// এটি একটি int ভেরিয়েবল `tmp` ঘোষণা করে এবং `ar[i]` এর মান দিয়ে এটি initialize করে। এই ভেরিয়েবলটি সাময়িকভাবে `ar[i]` এর মান ধরে রাখে যাতে আমরা পরবর্তীতে `ar[j]` এর মান `ar[i]` তে স্থানান্তর করতে পারি।
- `ar[i]=ar[j];`// এটি `ar[i]` এর মানকে `ar[j]` এর মান দিয়ে প্রতিস্থাপন করে।
- `ar[j]=tmp;`//এটি `ar[j]` এর মানকে `tmp` ভেরিয়েবলের মান দিয়ে প্রতিস্থাপন করে, যা আগে `ar[i]` এর মান ধরে রেখেছিল।
- `i++;`//এটি `i` এর মান 1 বাড়িয়ে দেয়।
- `j--;`//এটি `j` এর মান 1 কমিয়ে দেয়।
for(int i=0;i<n;i++)
{
  printf("%d ",ar[i]);
}
  • এই লুপটি উল্টো করা অ্যারেটি print করে।

Last updated