#include <stdio.h>
#include <conio.h>
#include <math.h>
int main(){
int i=1,j=1,d=1,n;
int a[100][100];
printf("Nhap cap ma tran xoay :");
scanf("%d",&n);
a[0][1]=1;
a[n+1][1]=1;
a[0][n]=1;
a[n][n+1]=1;
while(d<=n*n){
while(a[i][j]==0){
a[i][j]=d;
d++;
j++;
}
i++;j--;
while(a[i][j]==0){
a[i][j]=d;
d++;
i++;
}
i--;j--;
while(a[i][j]==0){
a[i][j]=d;
d++;
j--;
}
j++;i--;
while(a[i][j]==0){
a[i][j]=d;
d++;
i--;
}
i++;j++;
}
for(i=0;j<n;i++){
for(i=0;j<n;j++){
printf("%d\t",a[i][j]);
}
printf("\n");
}
return 0;
}```
kết quả :
Nhap cap ma tran xoay :3
1 2 3
101 102 0
201 0 203
--------------------------------
Process exited after 1.701 seconds with return value 0
Press any key to continue . . .
Viết ma trận vuông xoáy cấp n
Sentinel ở dòng 0
Điền vào dòng 1
vì vậy sentinel không có tác dụng.
là sao ạ ? em không hiểu
Tham khảo:
Javascript
// input
//var n = Number(prompt("Nhập n"));
var n = 9;
var d = 0; // direction.
var D = [[0,1],[1,0],[0,-1],[-1,0]]; // clockwise.
//var D = [[1,0],[0,1],[-1,0],[0,-1]]; // anti-clockwise.
var c = i = j = 0; // count, i, j.
var w = n, h = n; // height, width for any rectangle.
var a = Array(h).fill(0).map(x => Array(w).fill(0)); // a[h][w];
while(c<h*w){
// put value
a[i][j] = ++c;
// move next
i+=D[d][0];
j+=D[d][1];
// check next valid
if((i<0||i>=h)||(j<0||j>=w)||a[i][j]){ // a[i][j]!=0
// not valid
// return old value
i-=D[d][0];
j-=D[d][1];
// change direction
d=(d+1)%4;
// safe move next
i+=D[d][0];
j+=D[d][1];
}
}
// Result
var r ="";
for(var i in a){
for(var j in a[i]){
r+=a[i][j]+" ";
}
r+="\n";
}
console.log(r);
document.body.innerText = r;
Có lẽ code này ko phải của bạn 
đây là bài tập thầy cho…mấy bạn sửa em chép vô thôi mà chạy không ra
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?