您的位置:首页 > 其它

2017年鹅场模拟笔试之蛇型矩阵

2016-09-02 09:20 232 查看

原创内容,如需转载,请注明出处

题目大意:输入一个正数n,按顺时针方向打印n * n的蛇型矩阵。

输入:

6

输出:

1 2 3 4 5 6
20 21 22 23 24 7
19 32 33 34 25 8
18 31 36 35 26 9
17 30 29 28 27 10
16 15 14 13 12 11

代码如下

#include <stdio.h>
#include <stdlib.h>

void snakeArr(int **arr,int n)
{
int val,i,j,left,right,low,high;

left = low = 0;
right = high = n -1;
val = 0;
while(left <= right && low <= high){
for(i = left; i <= right; i++){
arr[low][i] = ++val;
}
for(i = low + 1; i <= high; i++){
arr[i][right] = ++val;
}
for(i = right - 1; i >= left; i--){
arr[high][i] = ++val;
}
for(i = high - 1; i > low; i--){
arr[i][left] = ++val;
}

low++;left++;high--;right--;
}
printf("蛇型矩阵\n");
for(i = 0; i < n; i++){
for(j = 0; j < n; j++)
printf("%5d ",arr[i][j]);
printf("\n");
}
}
int main()
{
int **arr,i,n;
scanf("%d",&n);
arr = (int **)malloc(sizeof(int) * n);
for(i = 0; i < n; i++)
arr[i] = (int *)malloc(sizeof(int) * n);
snakeArr(arr,n);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: