সমস্যা
লিখিত কোডের ভিত্তিতে দেওয়া অ্যারেকে নিম্নমুখী বা উন্নতিমুখী ক্রমে সাজান।
সমাধান
একই নামের অধীনে সম্পর্কিত ডেটা আইটেমের একটি গ্রুপকে অ্যারে বলে। একটি অ্যারেতে নির্দিষ্ট মান এর "ইন্ডেক্স নম্বর" দিয়ে চিহ্নিত করা হয়।
অ্যারে ঘোষণা
অ্যারে ঘোষণার সিনট্যাক্স নিম্নরূপ:
datatype array_name [size];
উদাহরণস্বরূপ,
float marks [50]
এটি 'marks' কে ৫০টি ফ্লোট এলিমেন্ট ধারণকারী একটি অ্যারে হিসেবে ঘোষণা করে।
int number[10]
এটি 'number' কে সর্বাধিক ১০টি ইন্টিজার কনস্ট্যান্ট ধারণকারী একটি অ্যারে হিসেবে ঘোষণা করে।
প্রতিটি এলিমেন্ট "অ্যারে ইন্ডেক্স" ব্যবহার করে চিহ্নিত করা হয়।
অ্যারে ইন্ডেক্স ব্যবহার করে অ্যারে এলিমেন্ট অ্যাক্সেস করা সহজ।
অ্যারে এলিমেন্টগুলো উন্নতিমুখী ক্রমে সাজানোর লজিক নিম্নরূপ:
for (i = 0; i < n; ++i){ for (j = i + 1; j < n; ++j){ if (num[i] > num[j]){ a = num[i]; num[i] = num[j]; num[j] = a; } } }
প্রোগ্রাম
অ্যারেকে উন্নতিমুখী ক্রমে সাজানোর C প্রোগ্রাম:
#include <stdio.h> void main (){ int num[20]; int i, j, a, n; printf("enter number of elements in an array\n"); scanf("%d", &n); printf("Enter the elements\n"); for (i = 0; i < n; ++i) scanf("%d", &num[i]); for (i = 0; i < n; ++i){ for (j = i + 1; j < n; ++j){ if (num[i] > num[j]){ a = num[i]; num[i] = num[j]; num[j] = a; } } } printf("The numbers in ascending order is:\n"); for (i = 0; i < n; ++i){ printf("%d\n", num[i]); } }
আউটপুট
উপরোক্ত প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফলটি দেখায়:
enter number of elements in an array 5 Enter the elements 12 23 89 11 22 The numbers in ascending order is: 11 12 22 23 89