螺旋输出一组数组数据的实现

要螺旋输出一组数据,实现的解决方案:采用二维数组的形式来解决

结果如下:

实现如下:

这里我们定义一个类

     public class LoopSort{
        public static void main(String[] args){
               //要螺旋输出的数据的个数
            Scanner s=new Scanner(System.in);
            System.out.println("请输入螺旋输出的数据的行和列:");
            int number=s.nextInt();
            int code=s.nextInt();
            s.close();
            //定义一个存放数据的二维数组
            int[][] numbers=new int[number][code];
            //定义最小列
            int minX=0;
            //定义最大列
            int maxX=code-1;
            //定义最小行
            int minY=0;
            //定义最大行
            int maxY=number-1;
            //定义数据自增变量
            int count=0;
           
           while(minX<=maxX){
                  //行不变,为最小行,列从小到大
                for(int i=minX;i<=maxX;i++){
                   numbers[minY][i]=++count;
                }
                //这样第一行就不会在执行,就让最小行加一
                minY++;
                //列不变,为最大列,行从小到大
                for(int i=minY;i<=maxY;i++){
                   numbers[i][maxX]=++count;
                }
                //这之后最右边的列不再执行,就让最大列减一
                maxX--;
                //行不变,为最大行,列从大到小
                for(int i=maxX;i>=minX;i--){
                  numbers[maxY][i]=++count;
                }
                //最底层的行不再执行,就让最大行减一
                maxY--;
                //列不变,为最小列,行从大到小
                for(int i=maxY;i>=minY;i--){
                   numbers[i][minX]=++count;
                }
                //此时最左边的列不再执行,就让最小列加一
                minX++;
           }
           
           // 对二维数组进行遍历,循环输出数组中保存的数据
           for(int[] i:numbers){
              for(int j:i){
                 String val=j<10 ? "0" : "";
                 System.out .print(val+j+" ");
              }
              System.out.println();
           }
        }
     }
时间: 2024-11-08 19:01:48

螺旋输出一组数组数据的实现的相关文章

编程题:用一组数组做函数参数来实现,输入两个数,输出其中最大数

#include<stdio.h> float max(float x,float y) { float z; if(x>y)z=x; else z=y; return z; } void main() { float a[2],c; scanf("%f,%f",&a[0],&a[1]); c=max(a[0],a[1]); printf("%f,%f,the max is %f\n",a[0],a[1],c); } 编程题:用一组

将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入

//将一个4X4的数组进行逆时针旋转90度后输出,要求原数组数据随机输入 #include<stdio.h> int main() { int a[4][4],b[4][4],i,j;//a存放原是数组数据,b存放旋转后的数组数据 printf("please input 16 number:"); for(i=0;i<4;i++) for(j=0;j<4;j++) { scanf("%d",&a[i][j]); b[3-j][i]=

通过main方法的args数组可以用控制台获取一组字符串数据

通过main方法的args数组可以用控制台获取一组字符串数据. 例:给main方法的args数组输入两个整数,对这两个整数进行运算,结果如下图所示: 1.实现如下代码: public static void main(String[] args) { int a=Integer.parseInt(args[0]);//把字符串转化成int类型数据 int b=Integer.parseInt(args[1]);//把字符串转化成int类型数据 System.out.println(a+b); S

【C语言】使用指向指针数据的指针变量,输出一组字符串

//使用指向指针数据的指针变量,输出一组字符串 #include <stdio.h> int main() { char * name[]={"beijing","huanying","nin","!"}; char **p; int i; for(i=0;i<4;i++) { p=name+i; printf("%s ",*p); } printf("\n"); re

NSPredicate过滤数组数据

NSPredicate编写软件时,经常需要获取一个对象集合,然后删除不满足条件的对象,保留符合条件的对象,从而提供一些有意义的对象.Cocoa提供了一个名为NSPredicate的类,他用于指定过滤器的条件.可以创建NSPredicate对象,通过该对象准确地描述所需的条件,对每个对象通过谓词进行筛选,判断他们是否与条件相匹配.Cocoa用NSPredicate描述查询的方式,原理类似于在数据库中进行查询.可以在数据库风格的API中使用NSPredicate类,例如Core Data和Spotl

求一组数组各个元素的和*

package com.chongrui.test; /* *求一组数组各个元素的和* * */ import java.util.Scanner;public class test { public static void main(String[] args) { int[] num = {18,12,344,4,5,6,7,8,9,10};//创建并初始化一维数组num System.out.println("输出一维数组"); for(int i=0;i<num.leng

软件工程结队开发——输出一个数组中最大子数组的和

一.题目及要求 题目:返回一个整数数组中最大子数组的和. 要求: 输入一个整型数组,数组里有正数也有负数: 数组中连续的一个或多个整数组成一个子数组,每个子数组都有一个和: 求所有子数组的和的最大值.要求时间复杂度为O(n): 二.设计思路 程序分成两个部分: (1):找到数组中所有可能的子数组的和: 先从数组中第一个数开始算起,一直求到与它连续的的所有数的和存入数组son,然后从第二个数开始算起,求与它连续的数的和存入数组,以此类推,直至计算到最后一个数.有n个数据的数组能产生的子数组个数为n

1.数组arr[]遍历输出和数组中求最大的值。

1 public class gkhkhh { 2 3 public static void main(String[] args) { 4 // TODO Auto-generated method stub 5 6 7 int arr []=new int[]{ 12,34,22,11,8,9,4}; 8 9 for (int a=0;a<7;a++) 10 { 11 System.out.print(arr[a]+"\t"); 12 } 13 14 15 16 int ar

ember.js:使用笔记4 数组数据的分组显示

除了之前介绍的将数组数据在一个页面中输出的方法,还可以将数组数据分组,按照点击,在不同页面中分别显示,方法为: Model: 例如:Table Router: 设置一个父对象和子对象设置: this.resource("tables",function() { this.resource("table",{path:"/:table_id"}); //依照id输出 }); Route: App.TablesRoute = Em.Route.ext