算法竞赛入门经典(第2版)第3章 数组和字符串
程序3-3 蛇形填数
感悟。
1、写一段代码,测试一段(printf),成功率极高。
2、代码可读性强,增加了注释部分。
附上代码:
环境 Dev-cpp4.9.9.2
#include <stdio.h>
int a[10][10];
int n;
void printa(){
int i,j;
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
printf("%d ",a[i][j]);
}
printf("\n");
}
}
int main(){
int i,j;
int k=0;
int count=0;
scanf("%d",&n);
while(1){
for(i=1+k;i<=n-k;i++){//右列
j=n-k;
count++;
a[i][j]=count;
}
for(j=n-1-k;j>=1+k;j--){//下行
i=n-k;
count++;
a[i][j]=count;
}
for(i=n-1-k;i>=1+k;i--){//左列
j=1+k;
count++;
a[i][j]=count;
}
for(j=2+k;j<=n-1-k;j++){//上行
i=1+k;
count++;
a[i][j]=count;
}
k++;//控制二维矩阵左右边界
if(count==n*n)//循环结束条件。
break;
}
printa();//打印矩阵
return 0;
}