#include <stdio.h>

int main() {
    int ara[3][3];
    int i, j, k=100;

    for (i=0; i<3;  i++)
        for (j=0; j<3; j++)
            ara[i][j]=k++;

    for (i=0; i<3;  i++) {
        for (j=0; j<3; j++) {
            int temp=ara[i][j];
            ara[i][j]=ara[j][i];
            ara[j][i]=temp;
        }
    }

    for (i=0; i<3;  i++) {
        for (j=0; j<3; j++) {
            printf("%d\t", ara[i][j]);
        }
        printf("\n");
    }
}

asked 18 Aug, 22:00

Aryan_robin's gravatar image

Aryan_robin
112

edited 18 Aug, 22:28

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
60618


 for (i=0; i<3;  i++) {
        for (j=0; j<3; j++) {
            int temp=ara[i][j];
            ara[i][j]=ara[j][i];
            ara[j][i]=temp;
        }
    }

লক্ষ্য করুন, এই লুপে আপনি একই এ্যারের কলাম ও রো এর মানগুলো সেই এ্যারেতেই পরিবর্তন করার চেষ্টা করেছেন। যার ফলে সমস্যাটি হচ্ছে।

ধরুন লুপ যখন ৩য় বার ঘুরবে, তখন ara[1][3] = 103 এবং ara[3][1] = 109 ছিলো। লুপ সম্পন্ন হবার পর সেটি ট্রান্সপোজ হয়ে ara[1][3] = 109 এবং ara[3][1] = 103 হয়ে গেলো।

কিন্তু এই লুপটি যখন ৭ম বার ঘুরবে, তখন ম্যাট্রিক্স এর মান ara[1][3] = 109 এবং ara[3][1] = 103 আছে। যেটি লুপ সম্পন্ন হবার পর ট্রান্সপোজ হয়ে আবার সেই প্রথম অবস্থায় ফিরে যাবে। এই জন্য আপনার ট্রান্সপোজ হচ্ছে না।

এটি সমাধান করতে আপনি আরেকটি এ্যারে ব্যবহার করুন।

#include <stdio.h>

int main() {
    int array1[3][3], array2[3][3];
    int i, j, k=100;

    for (i=0; i<3;  i++){
        for (j=0; j<3; j++){
            array1[i][j]=k++;
        }
    }


    for (i=0; i<3;  i++) {
        for (j=0; j<3; j++) {
            array2[j][i]=array1[i][j];
        }
    }

    for (i=0; i<3;  i++) {
        for (j=0; j<3; j++) {
            printf("%d\t", array2[i][j]);
        }
        printf("\n");
    }
}
permanent link

answered 22 Sep, 15:49

mahadihk's gravatar image

mahadihk
413

include <stdio.h>

int main() { int ara[3][3]; int i, j, k=100;

for (i=0; i<3;  i++)
    for (j=0; j<3; j++)
        ara[i][j]=k++;

for (i=0; i<3;  i++) {
    for (j=i; j<3; j++) {
        int temp=ara[i][j];
        ara[i][j]=ara[j][i];
        ara[j][i]=temp;
    }
}

for (i=0; i<3;  i++) {
    for (j=0; j<3; j++) {
        printf("%d\t", ara[i][j]);
    }
    printf("\n");
}

}

hint j = i use kora hoyeche ... karon ta khata kolome ektu simulate kore bujhe nin tahole better bujhte parben

permanent link

answered 15 Oct, 22:18

Abdullahonee's gravatar image

Abdullahonee
111

Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×395
×90

question asked: 18 Aug, 22:00

question was seen: 139 times

last updated: 15 Oct, 22:18