数组-13. 螺旋方阵(20)

所谓“螺旋方阵”,是指对任意给定的N,将1到N*N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入NxN的方阵里。本题要求构造这样的螺旋方阵。

输入格式:

输入在一行中给出一个正整数N(<10)。

输出格式:

输出NxN的螺旋方阵。每行N个数字,每个数字占3位。

输入样例:

5

输出样例:

  1  2  3  4  5
 16 17 18 19  6
 15 24 25 20  7
 14 23 22 21  8
 13 12 11 10  9
 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <math.h>
 4 #include <string.h>
 5 #include <stdlib.h>
 6
 7 using namespace::std;
 8 int print(int a[10][10],int n)
 9 {
10     for(int i=0;i<n;i++)
11     {
12     for(int j=0;j<n;j++)
13     {
14         printf("%3d",a[i][j]);
15     //    if(j!=n-1)
16     //    printf(" ");
17     }
18     printf("\n");
19     }
20     return 0;
21 }
22 int main(){
23       int n;
24       scanf("%d",&n);
25         int round=ceil(n/2.0);
26       int count=0;
27       int a[10][10]={0};
28       for(int i=0;i<round;i++)
29       {
30           //画方阵,第i+1轮,上
31           if(count==n*n-1){
32               a[round-1][round-1]=n*n;
33               print(a,n);
34               return 0;
35           }
36         for(int j=0;j<n-2*i-1;j++)
37         {
38             count++;
39             a[i][i+j]=count;
40         //    print(a,n);
41             if(count==n*n){
42             print(a,n);
43             return 0;
44         }
45         }
46         //右
47         for(int j=0;j<n-2*i-1;j++)
48         {
49             count++;
50             a[i+j][n-i-1]=count;
51         //    print(a,n);
52         }
53         //下
54         for(int j=0;j<n-2*i-1;j++)
55         {
56             count++;
57             a[n-i-1][n-i-1-j]=count;
58         //    print(a,n);
59         }
60         //左
61         for(int j=0;j<n-2*i-1;j++)
62         {
63             count++;
64             a[n-i-1-j][i]=count;
65         //    print(a,n);
66         }
67         if(count==n*n){
68              print(a,n);
69              return 0;
70         }
71       }
72
73
74       return 0;
75 }
时间: 2024-12-05 20:52:25

数组-13. 螺旋方阵(20)的相关文章

数组-13. 螺旋方阵

1 /* 2 * Main.c 3 * E13-数组-13. 螺旋方阵 4 * Created on: 2014年8月25日 5 *******测试通过*********** 6 * 7 */ 8 9 #include <stdio.h> 10 11 int main(void) { 12 13 int array[11][11]; 14 int n; //题目中的N 15 16 scanf("%d", &n); 17 18 int upBound = 0; //上

PAT - IO - 螺旋方阵

所谓“螺旋方阵”,是指对任意给定的N,将1到N*N的数字从左上角第1个格子开始,按顺时针螺旋方向顺序填入NxN的方阵里.本题要求构造这样的螺旋方阵. 输入格式: 输入在一行中给出一个正整数N(<10). 输出格式: 输出NxN的螺旋方阵.每行N个数字,每个数字占3位. 输入样例: 5 输出样例: 1 2 3 4 5 16 17 18 19 6 15 24 25 20 7 14 23 22 21 8 13 12 11 10 9 实现: #include "stdafx.h" #de

c和c++的一些训练题(10)(打印螺旋方阵)

问题的提出:编写螺旋方阵.其中螺旋方阵形式如下: 1  12 11  10 2  13 16   9 3  14 15   8 4   5   6    7 设row,column分别代表行.列坐标,变量p从1到n2将p依次存入数组a[row][column]中,要确定row.colomn的变化情况.分析如下:引进变量k,初值为n.当数据存入到左下角或右上角时,k减1,这样可保证输出时方阵.引进变量t,初值为1,当数据存入到右下角时,令t改变符合,当存入到左上角时,t又改变符合,这样可保证赋值到

数组-06. 找出不是两个数组共有的元素(20)

1 #include<iostream> 2 using namespace std; 3 int main(){ 4 int i,j,k=0,l,a[20],b[20],c[40],m,n; 5 cin>>m; 6 for(i=0;i<m;++i) 7 cin>>a[i]; 8 cin>>n; 9 for(j=0;j<n;++j) 10 cin>>b[j]; 11 12 for(i=0;i<m;++i){ 13 for(j=0

数组-12. 简易连连看(20)

数组-12. 简易连连看(20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈建海(浙江大学) 本题要求实现一个简易连连看游戏模拟程序. 给定一个2Nx2N的方阵网格游戏盘面,每个格子中放置一些符号.这些符号一定是成对出现的,同一个符号可能不止一对.程序读入玩家给出的一对位置(x1, y1).(x2, y2),判断这两个位置上的符号是否匹配.如果匹配成功,则将两个符号消为"*"并输出消去后的盘面:否则输出"

4.20日第13次作业.,20章战略管理,21章业务流程管理和重组,22章知识管理,高项,29-田哲琦

4.20日第13次作业.,20章战略管理,21章业务流程管理和重组,22章知识管理,高项,29-田哲琦 20章.战略管理1.企业战略的特点有哪些?P420-421 答:1).全局性 2).长远性 3).抗争性 4).纲领性 2.企业战略决策的特点有哪些?P421答:1).决策的对象是复杂的,很难把握住它的结构,并且是没有先例的,对其处理上也是没有经验可循. 2).面对的问题常常是突发性的.难以预料的.所依靠的是来自外部的关于未来如何变化的很少的情报. 3).决策的性质直接涉及到企业的前途. 4)

数组 :定义一个有20个元素的数组,每一个元素的取值范围是[30 ,70],求他们的和

   //定义一个有20个元素的数组,每一个元素的取值范围是[30 ,70],求他们的和     int a[20] = {0};     int sum = 0;     for (int i = 0; i < 20; i++) {         a[i] = arc4random()%(70 - 30 + 1) + 30;         printf("%d ",a[i]);         sum += a[i];     }       printf("\n

求2/1+3/2+5/3+8/5+13/8...前20项之和

package com.exercise.coreJava; /** *求2/1+3/2+5/3+8/5+13/8...前20项之和 */ public class Sum { public static void main(String[] args) { double sum = 0; double fenZi = 2.0, fenMu = 1.0; for (int i = 1; i <= 20; i++) { sum += fenZi / fenMu; fenMu = fenZi; fe

实验7-1-4-一维数组 找出不是两个数组共有的元素 (20 分)

给定两个整型数组,本题要求找出不是两者共有的元素. 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤),随后是N个整数,其间以空格分隔. 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格.题目保证至少存在一个这样的数字.同一数字不重复输出. 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1 1 #includ