Исправить программу по отражению матриц
Дана квадратная случайная матрица. Нужно зеркально отразить ее элементы относительно побочной диагонали и вывести матрицы рядом друг с другом
Программа ломается после половины, не понимаю как исправить. Помогите, пожалуйста, исправить. Заранее спасибо!!
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int st,str,k=0,x;
printf("введите количество столбцов \n");
scanf("%d",&st);
printf("введите количество строк \n");
scanf("%d",&str);
int a[str][st];
srand(time(NULL));
for (int i = 0; i < str; i++)
{
printf("\n");
for (int j = 0; j<st; j++)
{
a[i][j] =-99 + rand()%199;
printf("%4d ",a[i][j]);
}
printf(" | ");
for (int j = 0; j<st; j++)
{
printf("%4d ",a[j][i]);
}
}
return 0;
}
Ответы (1 шт):
Автор решения: Павел Ериков
→ Ссылка
Вам нужно сначала инициализировать всю матрицу, а потом уже выводить её и её зеркальную версию.
Вот пример кода:
int st,str,k=0,x;
printf("введите количество столбцов \n");
scanf("%d",&st);
printf("введите количество строк \n");
scanf("%d",&str);
int a[str][st];
srand(time(NULL));
//Инициализация
for (int i = 0; i < str; i++)
for (int j = 0; j < st; j++)
a[i][j] = -99 + rand() % 199;
//Вывод
for (int i = 0; i < str; i++) {
printf("\n");
for (int j = 0; j < st; j++)
printf("%4d ", a[i][j]);
printf(" | ");
for (int j = 0; j < st; j++)
printf("%4d ", a[j][i]);
}