Dönmə#2669

Dönmə (Həll təhlili)

Matris -nı saat istiqamətində dərəcə döndürərkən koordinatları olan element matris -də (j, n - i - 1) koordinatlarına keçir.

Əgər ilkin matris ölçüsü n \times m olarsa, əldə edilən matris ölçüsü m \times n olacaq. Hər iki matrisin elementlərinin indeksləşdirilməsi -dan başlayır.

Alqoritmin reallaşdırılması

Giriş massivini və nəticədə çevrilmiş massiv elan edək.

#define MAX 55
int a[MAX][MAX], b[MAX][MAX];

Giriş məlumatlarını oxuyuruq.

scanf("%d %d",&n,&m);
for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
  scanf("%d",&a[i][j]);

Massiv -nı çeviririk və nəticəni -də yazırıq.

for(i = 0; i < n; i++)
for(j = 0; j < m; j++)
  b[j][n-i-1] = a[i][j];

Çevrilmiş massiv -ni çıxışa veririk.

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