mấy bác cho em hỏi bài tập này. em chỉ làm được nữa thôi còn nữa còn lại bị lỗi nhờ mấy bác fix dùm hoặc viết lại code khác cũng được. thanks trước.
Hãy xoay chuyển ma trận sau 1 góc 45 độ theo chiều kim đồng hồ. Hiển thị ma trận sau khi chuyển.
1 2 3
4 5 6
7 8 9
Sau khi chuyển ta được:
1
4 2
7 5 3
8 6
9
code của e.
#include<stdio.h>
#include<conio.h>
int main()
{
int i, j, n, num, u, v;
printf("Nhap kich thuoc: ");
scanf("%d", &n);
int arr[n][n]={0}, arr45[n*2-1][n]={0};
num = 1;
for (i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
arr[i][j] = num;
printf("%3d", arr[i][j]);
num++;
}
printf("\n");
}
num = 0;
for (i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
arr45[j+i][j] = ++num;
}
}
int c=n,k;
printf("\nXoay 45 do: \n");
for (i = 0; i < n ; i++)
{
for(v=n-i;v>0;v--)
{
printf(" ");
}
for(j = 0; j < n; j++)
{
if(arr45[i][j]>0&&arr45[i][j]<n*n) printf("%4d",arr45[i][j]);
}
printf("\n");
}
for (i = n; i < n * 2-1; i++)
{
for(v=0;v<n;v++)
{
printf(" ");
}
for(j = 0; j < n; j++)
{
if(arr45[i][j]!=0) printf("%4d", arr45[i][j]);
}
printf("\n");
}
return 0;
}