মডিউল ১৮-৫ঃ জিরো অথবা নাল ম্যাট্রিক্স

এবার আমরা 2D এরের সাহায্যে একটি ম্যাট্রিক্স ইনপুট নিয়ে তা জিরো বা নাল ম্যাট্রিক্স কিনা তা বের করব।

প্রথমে ম্যাট্রিক্সটির রো এবং কলাম ইনপুট নিয়ে সেই রো এবং কলাম দিয়ে একটি 2D এরে ডিক্লেয়ার করে ফেলতে পারি। তারপর ম্যাট্রিক্সটি ইনপুট নেওয়ার পর আমরা একটি সিম্পল লজিক দিয়ে ফেলতে পারি তা হলো আমরা ম্যাট্রিক্স এর মধ্যে জিরো পেলেই তা কাউন্ট করে রাখব। লাস্টে আমরা চেক করে দেখব আমাদের কাউন্ট আমাদের সবগুলো এলিমেন্ট সংখ্যার সাথে মিলছে কিনা। জিরো ম্যাট্রিক্স হলে সবগুলো এলিমেন্টই জিরো হতে হবে। এক্ষেত্রে রো এবং কলাম গুন করলেই আমরা এলিমেন্ট সংখ্যা পেয়ে যাব। তারপর চেক করে দেখব এলিমেন্ট সংখা এবং জিরো কাউন্ট সেইম কিনা। সেইম হলে জিরো ম্যাট্রিক্স আর নাহলে জিরো ম্যাট্রিক্স না। উদাহরন হিসেবে একটি ৩ x ৫ জিরো ম্যাট্রিক্স এর এলিমেন্ট সংখ্যা হবে ( ৩ * ৫ ) = ১৫ আর তাতে জিরো থাকতে হবে ১৫টি।

#include<stdio.h>
int main()
{
    int row,col;
    scanf("%d %d",&row,&col);     // রো এবং কলাম ইনপুট নেওয়া হচ্ছে। 
    int a[row][col];          //  সেই রো এবং কলাম দিয়ে একটি 2D এরে ডিক্লেয়ার করা হচ্ছে। 
    int element=row*col;      // রো এবং কলাম গুন করে এলিমেন্ট সংখ্যা বের করা হচ্ছে।
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            scanf("%d",&a[i][j]);   // ম্যাট্রিক্স ইনপুট নেওয়া হচ্ছে। 
        }
    }
    int cnt=0;     // জিরো কাউন্ট করার জন্য ভেরিয়েবল নিয়ে ০ দিয়ে ইনিশিয়াল করা হয়েছে। 
    for(int i=0;i<row;i++)
    {
        for(int j=0;j<col;j++)
        {
            if(a[i][j] == 0)   // নেস্টেড লুপ চালিয়ে সম্পূর্ণ ম্যাট্রিক্স এ যেয়ে ০ কাউন্ট করা হচ্ছে।
            {
                cnt++;
            }
        }
    }
    if(element == cnt)          // চেক করা হচ্ছে এলিমেন্ট সংখ্যা এবং জিরো সংখ্যা সেইম কিনা।
    {
        printf("Zero matrix\n");   // সেইম হলে জিরো ম্যাট্রিক্স। 
    }
    else 
    {
        printf("Not zero matrix\n");  // আর সেইম না হলে জিরো ম্যাট্রিক্স না। 
    }
    return 0;
}

Last updated