Получить транспонированную матрицу - C (СИ)
Формулировка задачи:
Дана квадратная матрица размера nxn. Получить транспонированную матрицу. Почему компилятор пишет ошибку:Run-Time Check Failure #2 - Stack around the variable 'arr' was corrupted. Каким еще способом можно траспорнировать мтарицу, не используя данный способ?
#include <stdlib.h> #include <time.h> #include <stdio.h> #define F 3 int main() { int arr[F][F],i,j; srand(time(NULL)); printf("Array: \n"); for(i=0;i<F;i++); { printf("\n"); for(j=0;j<F;j++) { arr[i][j]=rand()%100/10.0; printf("%3d ",arr[i][j]); } } printf("\n \n"); for(i=0;i<F;i++); { printf("\n"); for(j=0;j<F;j++) { arr[i][j]=rand()%100/10.0; printf("%3d ",arr[j][i]); } } return 0; }
Решение задачи: «Получить транспонированную матрицу»
textual
Листинг программы
#include <stdlib.h> #include <time.h> #include <stdio.h> #define F 3 int main() { int arr[F][F],i,j; srand(time(NULL)); printf("Array: \n"); for(i=0;i<F;i++) { printf("\n"); for(j=0;j<F;j++) { arr[i][j]=rand()%100/10.0; printf("%3d ",arr[i][j]); } } int temp, a, b; for (i=0;i<3;i++) for (j=0;j<3;j++) for (a=0;a<3;a++) for (b=0;b<3;b++) if (arr[a][b]<arr[i][j]) { temp=arr[a][b]; arr[a][b]=arr[i][j]; arr[i][j]=temp; } printf("\n \n"); for(i=0;i<F;i++) { printf("\n"); for(j=0;j<F;j++) { printf("%3d ",arr[i][j]); } } return 0; }
Объяснение кода листинга программы
В данном коде реализована функция для получения транспонированной матрицы.
- Создается матрица arr[F][F] и инициализируется случайными числами с помощью функции rand()%100/10.0.
- Выводится на экран исходная матрица arr[F][F].
- Создаются временные переменные temp, a, b для проведения операций сравнения и обмена элементов матрицы.
- Происходит двойная переборка элементов матрицы с целью сравнения и обмена элементов в соответствии с формулой: если arr[a][b]<arr[i][j], то производится обмен элементов arr[a][b] и arr[i][j].
- Выводится на экран полученная транспонированная матрица arr[F][F].
- Возвращается 0, что означает успешное завершение работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д