匿名用户

1级

2015-06-06 回答

楼主你好,先说一下我对这道题目的认识吧。

1、输入10个数,一次按顺序插入。核心考察的应该是2点

1) 给定一个数组和一个整数n,找到这个数应该插入的位置。

2) 插入这个数,其实就是从这个位置往后的所有元素后移一位即可。

2、你的代码用的java的集合。我想这道题目的初衷是考察是1中的2点。如果用集合list等元素的话。那么就失去了数组移动这个知识点的考察。

3、我是用数组实现的。集合应该更简单。

【执行效果,考虑了插入时候的大小问题】

请输入第1个整数

5

第1轮数组情况如下:

5 0 0 0 0 0 0 0 0 0

请输入第2个整数

1

位置0

第2轮数组情况如下:

1 5 0 0 0 0 0 0 0 0

请输入第3个整数

3

位置1

第3轮数组情况如下:

1 3 5 0 0 0 0 0 0 0

请输入第4个整数

8

位置3

第4轮数组情况如下:

1 3 5 8 0 0 0 0 0 0

请输入第5个整数

9

位置4

第5轮数组情况如下:

1 3 5 8 9 0 0 0 0 0

请输入第6个整数

2

位置1

第6轮数组情况如下:

1 2 3 5 8 9 0 0 0 0

请输入第7个整数

24

位置6

第7轮数组情况如下:

1 2 3 5 8 9 24 0 0 0

请输入第8个整数

18

位置6

第8轮数组情况如下:

1 2 3 5 8 9 18 24 0 0

请输入第9个整数

20

位置7

第9轮数组情况如下:

1 2 3 5 8 9 18 20 24 0

请输入第10个整数

25

位置9

第10轮数组情况如下:

1 2 3 5 8 9 18 20 24 25

【源代码】

import java.util.Scanner;

public class ZhuLei

{

//思路:定义一个程度为10的整型数组。一次录入10个整数。

//每个整数,找到自己该插入的位置,然后后面的元素全部后移即可。

public static void main(String[] args)

{

int[] a=new int[10];

int count=1;

Scanner scan=new Scanner(System.in);

while(count<=10)

{

System.out.println("请输入第"+count+"个整数");

int x=scan.nextInt();//获取一个整数

if(count==1)//第一个数直接放在a【0】上

{

a[0]=x;

}

else

{

int insertpos=getPos(a,x,count);

System.out.println("位置"+insertpos);

//移动元素

moveArray(a,insertpos);

a[insertpos]=x;

}

System.out.println("第"+count+"轮数组情况如下:");

printArray(a);

count++;

}

}

//给定一个数组和一个数,找出这个数该放的位置

public static int getPos(int[] a,int n,int count)

{

int pos=-1;

int i=0;

for(i=0;i

{

if(n<=a[i])//一旦发现那个元素比我这个大,那么就找到该插入的位置了。

{

pos=i;

break;

}

}

if(i==count)//如果是count轮,且是目前最大的数,肯定就是在这个位置了,但数组是count-1。

{

pos=count-1;

}

return pos;

}

//给定一个数组和一个下标,从下标开始所有元素后移动1位

public static void moveArray(int[] a,int pos)

{

for(int i=a.length-1;i>pos;i--)

{

a[i]=a[i-1];

}

}

//给定一个数组,打印每个元素

public static void printArray(int [] a)

{

for(int k:a)

{

System.out.print(k+" ");

}

System.out.println();

}

}

【思路说明】

1、定义一个10个数组的元素。

2、用一个循环,来实现10次输入10个整数(没考虑容错,即不是整数的情况)

3、每次输入一个数X。

如果是第一个,就直接赋值给a【0】

否则:

调用下面的一个一个函数,返回这个数该插入的位置

然后移动元素

最后把输入的这个数X复制到数组的这个空位置。即可

4、函数说明:

4.1 getPos()函数,第几轮,就看前几个,哪一个比这个X大,那么就停止,这个地方就是它该插入的地方,count全部看完,肯定是X目前最大,插入到count-1即可

4.2 moveArray(),这个简单,从后往前把元素后移一位,知道该插入的那个位置。

4.3 printArray(),打印数组,这样可以每次看看效果

【你第代码】

你的思路我没有时间看,但是警告就是List。

他的意思是,list好比一个口袋,但是只能装整数。这个问题不大。

好运!

java输入数据插入if_java编程,从键盘录入10个整数数据,将每次录入的数据按从小到大的顺序插入到数组中。...相关推荐

  1. 键盘录入三个整数,并将三个数据中的最大值打印在控制台

    package cn.zxj.com; import java.util.Scanner; public class Demo { public static void main(String[] a ...

  2. 利用C语言,编写一程序:从键盘输入10个整数,统计其中正数、负数和零的个数,并在屏幕上输出

    利用C语言,编写一程序:从键盘输入多个整数,统计其中正数.负数和零的个数,并在屏幕上输出 //从键盘输入10个整数,统计其中正数.负数和零的个数,并在屏幕上输出 #include <stdio. ...

  3. java程序从键盘输入十个整数存入数组a中_并编程实现:_2.用指针方式编写程序:从键盘输入10个整数,并存入数组,要求将10个书中的最大数与第一个输入的数交...

    用指针方式编写程序,从键盘输入10个整形整数,并存入数组,要求将10个数中最大的数与第1个输入的数交换:将10个数中最小 #includevoidmain(){inta[10],i,*m,*n,k=0 ...

  4. JAVA编写程序实现,由键盘输入两个整数,输出其中较大的数。

    import java.util.Scanner;public class Test1 {public static void main(String[] args) {// 1,编写程序实现,由键盘 ...

  5. 有十五个数按由大到小顺序存放在一个数组中_「图形化编程」前导知识-数组(一)...

    今天我们来学习一个新的概念-数组.这节课将通过一个小程序讲解数组的基本概念-数组的长度和下标 定义 数组指的是有序元素的集合,数组中的每个元素具有相同的类型,按照顺序排列的形式组织在一起.我们可以把数 ...

  6. Java黑皮书课后题第7章:7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值。编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字

    7.15(消除重复)使用下面的方法头编写方法,消除数组中重复出现的值.编写一个测试程序,读取10个数,调用该方法,并显示以一个空格分隔的不同数字 题目 题目描述与运行示例 破题 代码 21.11.11 ...

  7. c语言用一维数组求十个数和,c语言 .从键盘输入10个整数,存到一维数组中,并求这10个整数的和?...

    #include"stdio.h" //从键盘输入10个数存入一维数组,求这10个数中的最大值和最小值并输出 int main() { int i; float max,min,n ...

  8. Java图形化界面编程超详细知识点(10)——Swing_表格

    目录 7 JTable.TableModel实现表格 7.1 创建简单表格 7.2 TableModel 7 JTable.TableModel实现表格 表格也是GUI程序中常用的组件,表格是一个由多 ...

  9. python从键盘输入10个整数算出奇数偶数的和_画出流程图,并编程实现: 从键盘上输入10个整数型的数值,分别统计奇数和偶数的个数。_概率论与数理统计答案_学小易找答案...

    [填空题]photography club [简答题]几个基本概念:(答案上传到超星平台) 什么是数据? 数据库和数据库表 实体和记录.字段 数据库系统和数据库管理系统 数据库管理员(DataBase ...

最新文章

  1. intellij (org.jdom.input.JDOMParseException) Error on line 1: 前言中不允许有内容。
  2. java手机界面太小_手机端页面在项目中遇到的一些问题及解决办法
  3. python用字典存储学生信息网_用Python存储字典的四种方法
  4. oracle11 for download official
  5. Vue + Spring Boot 项目实战(四):前后端结合测试(登录页面开发)
  6. 汽车防撞实时语音播报仪设计
  7. Linux (x86) Exploit 开发系列教程之八 绕过 ASLR -- 第三部分
  8. D3 scaleQuantize
  9. 目前高产的稻麦品种的光能利用效率仅为()左右_枣树高产优质高效栽培关键技术...
  10. Go语言——图形界面编程
  11. SVN、GIT图标不显示解决方案
  12. PowerVR GPU - The Architecture Concepts
  13. 微信小游戏制作学习笔记
  14. 笛卡尔坐标系和齐次坐标系
  15. (二十四)资本资产定价模型
  16. 超详细且简单的Qt Designer设置界面背景图
  17. uni 讯飞文字转语音 详解
  18. 计算CP、CR、CF1、OP、OR、OF1和mAP的top-3评价指标
  19. PV、UV、VV、IP及其关系与计算
  20. 一小时快速上手win10 docker 、vscode、MobaXterm、git协作开发

热门文章

  1. 微软开源基于.NET Core的量子开发工具包 QDK
  2. Abp 0.18.0 正式发布! -ABP CLI,新模板和其他功能
  3. .NET 使用 ILRepack 合并多个程序集(替代 ILMerge),避免引入额外的依赖
  4. Xamarin.Forms之UserDialogs 重制版本
  5. [翻译] C# 8.0 新特性
  6. 使用Identity Server 4建立Authorization Server (5)
  7. .net core 使用Redis的发布订阅
  8. ASP.Net防范XSS漏洞攻击的利器HtmlSanitizer
  9. asp.net core源码飘香:Options组件
  10. 在Linux开发.NET——拜拜了Win10