老师,请问下调用方法“插入数据”和“在指定位置插入数据”时,数据长度如何定义呢?
package Operation;
import java.util.Scanner;
/**
* 管理系统: 1.插入数据 2.显示所有数据 3.在指定位置处插入数据 4.查询能被3整除的数据 0.退出程序
*
* @author zuofei
*
* 问题描述:
* 老师请问在“插入数据”方法中,数组长度为10,那输出最后一位会显示为0;
* 改为长度为9,在”指定位置插入数据时“最后一位插入时,又会报错。
* 这个应该如何修改呢?
*/
public class Operation {
public static void main(String[]args){
Operation am=new Operation();
am.notice();//调用提示信息方法
Scanner sc=new Scanner(System.in);
int n =sc.nextInt();//输入控制的数字
int []a=new int[10];
while(true & n!=0)
switch (n)
{
case 1:
a=am.inserData();
am.notice();
n=sc.nextInt();
break;
case 2:
am.showData(a,10);
am.notice();
n=sc.nextInt();
break;
case 3:
am.insertAtArray(a,n,n);
am.notice();
n=sc.nextInt();
break;
case 4:
am.divThree(a);
am.notice();
n=sc.nextInt();
break;
case 0:
System.exit(0);
default:
System.out.println("超出范围,请输入0-4的整数!");
am.notice();
n=sc.nextInt();
break;
}
}
//创建方法
//方法一:提示信息
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 int[]inserData(){
int a[]=new int[10];
for(int i=0;i<a.length-1;i++){
Scanner sc=new Scanner(System.in);
System.out.println("请输入第"+(i+1)+"个数据:");
int n=sc.nextInt();
a[i]=n;
if(a[i]==0 & a[i]<=10){
System.out.println("输入的数字不能为0!");
}
}
System.out.println("数组内容为:");
for(int i:a){
System.out.print(i+" ");
}
System.out.println( );
return a;
}
//方法二:显示所有数据
public void showData(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 sc=new Scanner(System.in);
n=sc.nextInt();
System.out.println("请选择要插入的位置:(1-9的整数!)");
Scanner sc1=new Scanner(System.in);
k=sc1.nextInt();
for(int i=a.length-1;i>=k;i--){
a[i]=a[i-1];
}
a[k]=n;
for(int i=0;i<a.length;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}
//方法四:查询能被3整除的数据
public void divThree(int []a) {
System.out.print("能被3整除的数据有:");
for(int i:a){
if(i%3==0){
System.out.print(i+" ");
}
}
System.out.println();
}
}
正在回答 回答被采纳积分+1
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星