C语言蛇形填数

简介: 思路就是:右-》下-》左-》上#include<stdio.h>#include<string.h>int a[10][10];int main(){ int i,j, n, num=0; memset(a, 0, sizeof(a)); scanf("%d", &n); num=a[i=0][j

这里写图片描述

思路就是:右-》下-》左-》上

#include<stdio.h>
#include<string.h>
int a[10][10];
int main()
{
    int i,j, n, num=0;
    memset(a, 0, sizeof(a));
    scanf("%d", &n);
    num=a[i=0][j=0]=1;
    while(num < n*n)
    {
        while(j<n-1 && !a[i][j+1]) a[i][++j] = ++num;   //右
        while(i<n-1 && !a[i+1][j]) a[++i][j] = ++num;   //下
        while(j>=1 && !a[i][j-1]) a[i][--j] = ++num;    //左
        while(i>=1 && !a[i-1][j]) a[--i][j] = ++num;    //上
    }
    for(i=0;i<n;i++){
    for(j=0;j<n;j++)
        printf("%3d ",a[i][j]);
        puts("");
    }
    return 0;
}
目录
相关文章
|
6月前
|
C语言
【C语言实现青蛙跳台阶问题】
【C语言实现青蛙跳台阶问题】
16 0
|
10月前
|
存储 C语言
C语言例题讲解(上)
C语言例题讲解(上)
|
10月前
|
机器学习/深度学习 C语言
C语言练习之求n的阶乘
C语言练习之求n的阶乘
110 0
|
C语言
C语言例题20:
 题目要求:输入3个数,按由大到小的顺序输出   #include void main() { //第一种方法:推理法 int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a>=b) ...
697 0
|
C语言
C语言例题24:
题目要求:给一个不超过5位的正整数,要求:    1、求出它是几位数    2、按逆序输出各位数字,例如原数是12345,应输出54321   #include void main() { int x; int a,...
911 0
|
C语言
C语言例题21:
题目要求:求 2/1+3/2+5/3+8/5+...  的前20项的和   #include void main() { int i; double a=1; double b=2; double sum=0; ...
681 0
|
C语言 机器学习/深度学习
C语言例题23:
题目要求:输入两个数,求其最大公约和最小公倍数   #include void main() { int m,n,x,y; printf("输入两个正整数/n"); scanf("%d%d",&m,&n); if...
785 0
|
C语言
C语言例题19:
题目要求:编写一个函数,打印学生成绩,该数组中有3个学生的数据记录,每个记录包括num,name,score[3],用主函数输入这些记录,输入学号,将该学号的学生记录输出   #include struct studen...
733 0
|
C语言
C语言例题25:
 题目要求:一维数组实现杨辉三角   #include void main() { int i,j,x; //x,y是二个计数器,X是欲显示的行数 scanf("%d",&x); int a[20]={1...
796 0
|
C语言 人工智能
C语言例题17:
题目要求:写一函数,实现两字符串的连接   #include #include void cat(char a[],char b[]) { int i,j,k; i=strlen(a); j=strlen(b);...
633 0