请教一下老师为什么插入的数据不能保存到int[] arr??插入数据功能没有能够存储插入的数据??
package com.work;
import java.util.Scanner;
//综合任务:简单的数组中数据的管理系统
public class WorkTask {
//创建一个显示提示信息的方法
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("请输入对应的数字进行操作:");
}
static Scanner sc=new Scanner(System.in);
//创建一个插入数据的方法
public int[] insertData() {
int arr[]=new int[10];
for(int a=0;a<arr.length-1;a++){//初始化元素
System.out.println("请输入第"+(a+1)+"个数据");
arr[a]=sc.nextInt();
}
System.out.println("显示数据");
for(int n:arr) {
if(n!=0) {
System.out.print(n+" ");
}else {
continue;
}
}
System.out.println();
return arr;
}
//创建一个显示数据的方法
public void showData(int[] a,int length ) {
System.out.print("显示所有的数据");
for(int n=0;n<length;n++) {
if(a[n]!=0) {
System.out.print(a[n]+" ");
}else {
continue;
}
}
System.out.println();
}
//创建一个在指定位置插入一个数据的方法
public void insertAtArray(int[] a,int c,int k) {
System.out.println("请输入要插入的数据");
c=sc.nextInt();
System.out.println("请输入要插入的位置");
k=sc.nextInt();
}
//查询能被三整除的数据
public void divThree(int []a) {
System.out.println("能被三整除的数据为:");
for(int n:a) {
if(n%3==0) {
System.out.print(n+" ");
}
}
System.out.println();
}
public static void main(String[] args){
//在WorkTask中建一个对象insert
WorkTask insert=new WorkTask();
//在WorkTask中建一个对象show
WorkTask show=new WorkTask();
//在WorkTask中建一个对象array
WorkTask array=new WorkTask();
//在WorkTask中建一个对象div
WorkTask div=new WorkTask();
//在WorkTask中建一个对象work,
WorkTask work=new WorkTask();
int[] arr=new int[10];
int s;
do {work.notice();
s=sc.nextInt();
switch(s) {
case 1:arr=insert.insertData();break;
case 2:show.showData(arr, 10);;break;
case 3:int c=0,k=0;
array.insertAtArray(arr, c, k);break;
case 4:div.divThree(arr);break;
default:
if(s>4&s!=0)System.out.println("请输入正确的数字");break;
}
}while(s!=0);
if(s==0) {
System.out.println("退出");
}
正在回答
//创建一个在指定位置插入一个数据的方法 public void insertAtArray(int[] a,int c,int k) { System.out.println("请输入要插入的数据"); c=sc.nextInt(); System.out.println("请输入要插入的位置"); k=sc.nextInt(); }
你的这个方法只是输入了要插入的数据和插入的位置,并没有对数组进行插入操作,可以按如下思路接着完成一下:
定义一个for循环,循环变量i初识值为a.length-1,判断条件是i>=k; i的值是递减的,循环体中的内容就是把前一个元素的值赋值给后一个元素,即a[i]=a[i-1];这样就达到了移位的效果。循环外将c赋值给a[k]
祝学习愉快!
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星