juhugufudu 发表于 2020-1-25 20:43:42

编程题问题

(2)方阵填数
问题描述:
在一个N*N的方阵中,填入1,2,...,N*N个数,并按要求构成如下的格式:

|                N=5时                  |
| 13      14      15      16      1 |
| 12      23      24      17      2 |
| 11      22      25      18      3 |
| 10      21      20      19      4 |
|   9      8      7      6      5 |



输入格式:
一个整数N。
输出格式:
一个N*N的方阵。
输入案例:
5
输出案例(Tab键对齐):
13    14    15    16    1
12    23    24    17    2
11    22    25    18    3
10    21    20    19    4
9      8      7      6    5


zltzlt 发表于 2020-1-25 20:43:43

https://blog.csdn.net/bulbboy/article/details/83658334

人造人 发表于 2020-1-25 22:51:53

螺旋方阵
https://blog.csdn.net/qq_41219157/article/details/78821724

人造人 发表于 2020-1-25 22:52:35

https://www.so.com/s?src=360chrome_newtab_search&q=螺旋方阵

bilbil路陌人 发表于 2020-1-26 12:45:43

本帖最后由 bilbil路陌人 于 2020-1-26 12:47 编辑

人造人 发表于 2020-1-25 22:51
螺旋方阵
https://blog.csdn.net/qq_41219157/article/details/78821724

emm

juhugufudu 发表于 2020-1-27 17:35:18

谢谢zltzlt,我学习了,并成功改编:
#include<stdio.h>

int main()
{
    int N,i,j,k,z,c,m = 1;
    printf("请输入n:");
    scanf("%d",&N);
    int a = {0};
    for(c = 0;c<=N/2+1;c++)
    {
      for(i = c;i<=N-c-1;i++)
      {
            a = m++;
      }
      for(j = c;j<=N-c-2;j++)
      {
            a = m++;
      }
      for(k = N-c-2;k>=c+1;k--)
      {
            a = m++;
      }
      for(z = c;z <= N-c-2;z++)
      {
            a = m++;
      }
    }
    for(i = 0;i<N;i++){
      for(j = 0;j <N;j++){
            printf("%3d",a);
      }
      printf("\n");
    }
    return 0;
}
页: [1]
查看完整版本: 编程题问题