মডিউল ১৮-২ঃ 2D এরে ইনপুট আউটপুট
এবার আমরা দেখব কিভাবে 2D এরে তে ইনপুট নিতে হয় এবং আউটপুট দেখাতে হয়।
1D এরে তে আমরা এরে সাইজ পর্যন্ত একটি লুপ চালিয়ে ইনপুট এবং আউটপুট দেখাতাম। 2D এরেতে আমাদের দুটি নেস্টেড লুপ চালাতে হবে। প্রথম লুপটি ( আউটার লুপ ) 2D এরের সাইজ পর্যন্ত চালাতে হবে এবং দ্বিতীয় ( ইনার লুপ ) লুপটি 2D এরের প্রতিটি ইন্ডেক্সে যেয়ে যেই এরেটি থাকবে তার সাইজ পর্যন্ত চালাতে হবে।
ইনপুট নেওয়ার আগে আমাদের 2D এরের ইন্ডেক্স গুলো কিভাবে হয় তা বুঝতে হবে। 2D এরেতে প্রতিটি ইন্ডেক্সের দুটি করে ভেলু থাকে রো এবং কলাম। আমরা যদি ৫ সাইজের একটি 2D এরে ডিক্লেয়ার করি যার প্রতিটি ইন্ডেক্সে থাকবে একটি করে ৩ সাইজের এরে। তাহলে এরের ইন্ডেক্স গুলো দেখতে হবে এমনঃ
1 0
1 1
1 2
2 0
2 1
2 2
3 0
3 1
3 2
4 0
4 1
4 2
আমরা একটি নেস্টেড লুপ চালিয়ে এরের ইন্ডেক্স গুলো এক্সেস করতে পারিঃ
#include<stdio.h>
int main()
{
int a[5][3]; // 2D এরে ডিক্লেয়ার করা হচ্ছে
for(int i=0;i<5;i++) // 2D এরের সাইজ ৫ পর্যন্ত লুপ চালানো হচ্ছে। এই লুপ 2D এরের প্রতিটি ইন্ডেক্সে যাবে।
{
for(int j=0;j<3;j++) // 2D এরের প্রতিটি ইন্ডেক্সে একটি এরে আছে যা ৩ সাইজের, তাই ৩ পর্যন্ত লুপ চালানো হচ্ছে।
{
printf("a[%d][%d] ",i,j); // i,j প্রিন্ট করা হচ্ছে, যা 2D এরের রো এবং কলাম প্রিন্ট করবে অর্থাৎ ইন্ডেক্স প্রিন্ট করবে।
}
printf("\n"); // ভিতরের এরের সবগুলো ইন্ডেক্স প্রিন্ট করার পর নতুন লাইন প্রিন্ট করা হচ্ছে।
}
return 0;
}কোডটি রান করলে আমরা দেখতে পাব সবগুলো ইন্ডেক্স প্রিন্ট হচ্ছে।
এবার সেইম লজিকে এই ইন্ডেক্সগুলো আমরা scanf() এর মধ্যে দিয়ে ইনপুট নিয়ে নিতে পারি এবং printf() এর মধ্যে দিয়ে আউটপুট দেখিয়ে দিতে পারি।
কোডটি রান করে আমরা ৫টি ৩ সাইজের এরে ( ৫x৩ ম্যাট্রিক্স ) ইনপুট দিলে আউটপুট দেখতে পাব।
Last updated