Bạn có thể tham khảo đoạn code của mình.
Mã:
/* Ma trận theo qui luật:
^---> Xoắn ốc....!
| |
|<--|
*/
#include <stdio.h>
#include <conio.h>
void Matran_Bt(int a[][100], int &n, int &m);
void Matran_Xoanoc(int a[][100], int n, int m);
void Xuat_Matran(int a[][100], int n, int m);
void main()
{
int a[100][100], n, m;
printf("Chuong trinh in ma tran theo xoan oc.");
printf("
Nhap n=");
scanf("%d",&n);
printf("
Nhap m=");
scanf("%d",&m);
printf("
Ma tran binh thuong:");
Matran_Bt(a,n,m);
printf("
");
Xuat_Matran(a,n,m);
printf("
Ma tran qui luat xoan oc:");
Matran_Xoanoc(a,n,m);
printf("
");
Xuat_Matran(a,n,m);
getch();
}
void Matran_Bt(int a[][100], int &n, int &m)
{
int count=1;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
a[i][j]=count++;
}
void Matran_Xoanoc(int a[][100], int n, int m)
{
int value=1;
int a1=0,a2=m-1,a3=n-1,a4=0,sovong,sv=0;
if (n%2==0)
sovong=n/2;
else
sovong=n/2+1;
while (sv<=sovong)
{
for(int j=a1;j<=a2;j++)
a[a1][j]=value++;
if (value==m*n+1) break;
for(int i=a1+1;i<=a3;i++)
a[i][a2]=value++;
if (value==m*n+1) break;
for(int j=a2-1;j>=a4;j--)
a[a3][j]=value++;
if (value==m*n+1) break;
for(int i=a3-1;i>a1;i--)
a[i][a4]=value++;
if (value==m*n+1) break;
a1++;a2--;a3--;a4++;sv++;
}
}
void Xuat_Matran(int a[][100], int n, int m)
{
for(int i=0;i<n;i++)
{
for(int j=0;j<m;j++)
printf("%3d",a[i][j]);
printf("
");
}
}
Pallet nhựa Lâm Đồng giải pháp hoàn hảo cho nhà kho Pallet nhựa Lâm Đồng là một giải pháp đa năng và hiệu quả trong việc vận chuyển và lưu trữ hàng hóa. Trong đó, pallet nhựa Lâm Đồng không chỉ đáp...
Pallet nhựa Lâm Đồng giải pháp...