Bài đó nè : Xoắn ốc ....
Code:
#include <stdio.h>
#include <conio.h>
int n;
int a[50][50];
//============================================//
void Nhap_mtchuaxep(int i,int j)
{
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
{
printf ("a[%d][%d]= ",i,j);
scanf ("%d",&a[i][j]);
}
getch();
}
//============================================//
void Xuat_mt(int i,int j)
{
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%4d",a[i][j]);
printf("\n");
}
getch();
}
//============================================//
main()
{
clrscr();
int i,j;
printf("Nhap kich thuoc ma tran");
scanf("%d", &n);
Nhap_mtchuaxep(i,j);
printf("ma tran chua sap xep:\n");
Xuat_mt(i,j);
printf("\n");
int Min=1;
int Max=n;
int k=1;
// Dien so theo vong tron , giam dan toa do hinh vuong can dien
while (Min < Max)
{
for(i=Min;i<=(Max-1);i++) {a[Min][i]=k;k++;} //dien so tu trai sang phai o dong dau tien
for(i=Min;i<=(Max-1);i++) {a[i][Max]=k;k++;} //tren xuong duoi o cot cuoi cung
for(i=Min;i<=(Max-1);i++) {a[Max][Max-i+Min]=k;k++;} // phai sang trai o dong duoi cung
for(i=Min;i<=(Max-1);i++) {a[Max-i+Min][Min]=k;k++;} //duoi len tren o cot dau tien
//Sau do cho toa do cua hinh vuong can dien thu nho lai 1 don vi
Min++;
Max--;
}
printf("xuat ma tran vua sap xep:\n");
Xuat_mt(i,j);
//Viet chuong trinh tinh tong cac hang matran,va cac cot , truoc ma sau khi sap xep //
getch();
return 0;
}