সমস্যা
প্রধান তির্যক উপাদানগুলিকে গৌণ তির্যক উপাদানগুলির সাথে বিনিময় করার জন্য আমাদের একটি কোড লিখতে হবে। ম্যাট্রিক্সের আকার রানটাইমে দেওয়া হয়।
যদি ম্যাট্রিক্স m এবং n এর মান সমান না হয়, তাহলে এটি প্রিন্ট করে যে প্রদত্ত ম্যাট্রিক্সটি একটি বর্গক্ষেত্র নয়।
শুধুমাত্র একটি বর্গাকার ম্যাট্রিক্স প্রধান তির্যক উপাদানগুলিকে পরিবর্তন করতে পারে এবং সেকেন্ডারি তির্যক উপাদানগুলির সাথে বিনিময় করতে পারে৷
সমাধান
প্রদত্ত ম্যাট্রিক্সে তির্যক উপাদানগুলিকে বিনিময় করার জন্য একটি C প্রোগ্রাম লেখার সমাধান নিম্নরূপ -
তির্যক উপাদানগুলিকে পরিবর্তন করার যুক্তি নীচে ব্যাখ্যা করা হয়েছে -
for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; }
উদাহরণ
প্রদত্ত ম্যাট্রিক্সে তির্যক উপাদানগুলিকে আদান-প্রদান করার জন্য C প্রোগ্রামটি নিচে দেওয়া হল −
#include<stdio.h> main (){ int i,j,m,n,a; static int ma[10][10]; printf ("Enter the order of the matrix m and n\n"); scanf ("%dx%d",&m,&n); if (m==n){ printf ("Enter the co-efficients of the matrix\n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ scanf ("%d",&ma[i][j]); } } printf ("The given matrix is \n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("\n"); } for (i=0;i<m;++i){ a = ma[i][i]; ma[i][i] = ma[i][m-i-1]; ma[i][m-i-1] = a; } printf ("Matrix after changing the \n"); printf ("Main & secondary diagonal\n"); for (i=0;i<m;++i){ for (j=0;j<n;++j){ printf (" %d",ma[i][j]); } printf ("\n"); } } else printf ("The given order is not square matrix\n"); }
আউটপুট
যখন উপরের প্রোগ্রামটি কার্যকর করা হয়, তখন এটি নিম্নলিখিত ফলাফল তৈরি করে -
Run 1: Enter the order of the matrix m and n 3x3 Enter the co-efficient of the matrix 1 2 3 4 5 6 7 8 9 The given matrix is 1 2 3 4 5 6 7 8 9 Matrix after changing the Main & secondary diagonal 3 2 1 4 5 6 9 8 7 Run 2: Enter the order of the matrix m and n 4x3 The given order is not square matrix