8-1作业,仿写的

import java.util.Scanner;
public class Demo {
//插入数据
public int[] insertDate() {
int[] a=new int[9];
Scanner sc=new Scanner(System.in);
for(int i=0;i<a.length;i++) {
System.out.println("请输入"+(i+1)+"个数据");
a[i]=sc.nextInt();
}
System.out.println();
return a;
}
//显示所有数据
public void showDate(int[] a,int length) {
System.out.println("数组元素为:");
for(int i=0;i<a.length;i++) {
System.out.print(a[i]+" ");
}
System.out.println();
}
//在指定位置插入数据
public void insertAtArray(int[] a,int n,int k) {
System.out.println("请输入要插入的数据:");
Scanner as=new Scanner(System.in);
n=as.nextInt();
System.out.println("请输入要插入数据的位置:");
k=as.nextInt();
for(int i=(a.length-1);i>=k;i--) {
a[i]=a[i-1];
}
a[k]=n;
}
//查询能被3整除的数据
public void divThree(int[] a) {
System.out.println("数组中能被3整除的元素为:");
for(int i=0;i<a.length;i++) {
if(a[i]%3==0) {
System.out.print(a[i]+" ");
}
}
}
//显示提示信息的方法
public void notice() {
System.out.println("***********************************");
System.out.println(1+"--插入数据");
System.out.println(2+"--显示所有数据");
System.out.println(3+"--在指定位置处插入数据");
System.out.println(4+"--查询能被3整除的数据");
System.out.println(0+"--退出");
System.out.println("***********************************");
System.out.println("请输入对应的数字进行操作:");
}
public static void main(String[] args) {
Demo demo=new Demo();
int a[]=new int[10];
while(true) {
demo.notice();
Scanner s=new Scanner(System.in);
int m=s.nextInt();
switch(m) {
case 1:
a=demo.insertDate();
break;
case 2:
demo.showDate(a, m);
break;
case 3:
demo.insertAtArray(a, m, m);
demo.showDate(a, m);
break;
case 4:
demo.divThree(a);
break;
case 0:
System.out.println("退出程序!");
System.exit(0); break;
default:
System.out.println("输入错误,请重新输入");
}
}
}
}请问在指定位置处插入数据,为什么会有数据丢失呢,还有查询能被3整除的数据没有进行换行,麻烦指导一下。
源自:Java方法
8-1 综合案例需求
181
收起
正在回答
1回答
1、因为作业要求一开始接收9个数据,所以应该把数组长度定义为10,插入数据的方法中,循环条件变为a.length-1,这样就能少接收一个数据,为在指定位置处插入数据留出来一个位置,就不会有数据丢失了
2、查询能被3整除的方法,在方法最后写一条输出语句System.out.println();就可以进行换行了。
3、另外,作业要求插入数据时不能插入0,所以插入数据的方法中,还要对插入的数据进行判断如果为0要重新输入。
4、显示数据的方法,根据作业要求,要分为指定位置处插入数据前和数据后,所以要判断数组元素是否为0,如果为0则不输出。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题
登录后可查看更多问答,登录/注册
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星