老师,我的代码里只有输入数据和退出功能可以用,其他都用不了,请老师帮我看看
package com.imooc;
import java.util.Scanner;
public class MyHomework {
//向数组中插入数据
public int[] insertData(){
Scanner sc=new Scanner(System.in);
int[] arr=new int[10];
for(int i=0;i<arr.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数据:");
int cha=sc.nextInt();
arr[i]=cha;
}
System.out.println("数组元素为:");
for(int i=0;i<arr.length-1;i++){
System.out.print(arr[i]+" ");
}
return arr;
}
//显示所有数据
public void showData(int[] arr,int length){
System.out.println("数组元素为:");
for(int i=0;i<length;i++){
System.out.print(arr[i]+" ");
}
}
//在指定位置插入数据
public void insertAtArray(int[] arr,int n,int k){
arr=new int[10];
System.out.println("请输入要插入的数据:");
Scanner sc=new Scanner(System.in);
n=sc.nextInt();//n为要插入的数据
System.out.println("请输入要插入的位置:");
Scanner sc1=new Scanner(System.in);
k=sc1.nextInt();//K为插入的位置
int L=arr.length;//没插入数据前数组的长度
if(k<=L){
for(;L>k-1;L--){
arr[L]=arr[L-1];
}}
else{
arr[k]=n;
}
}
//查询能被3整除的数据
public void divThree(int[] arr){
for(int i=0;i<arr.length;i++){
if(arr[i]%3==0){
System.out.println("能被3整除的数据有:"+arr[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) {
MyHomework mulu=new MyHomework();
mulu.notice();
Scanner sc=new Scanner(System.in);
int[] a=new int[10];
int m;
do{
m=sc.nextInt();
switch(m){ //m为功能序号
case 1:
a=mulu.insertData();
mulu.notice();
break;
case 2:
mulu.showData(a,a.length);
mulu.notice();
break;
case 3:
int n=0;
int k=0;
mulu.insertAtArray(a, n, k);
mulu.notice();
break;
case 4:
mulu.divThree(a);
mulu.notice();
break;
case 0:System.out.println("退出程序!");
}
}while(m!=0);
sc.close();
}
}
正在回答 回答被采纳积分+1
代码主要有如下几个问题:
1、插入数据缺少数据不能为0的检查;
2、输出数组中能被3整除的方法里缺少如果没有可以被3整数的数的提示信息;
3、在指定位置插入数据的方法中:
1)arr不需要在这里面重新创建;
2)L = arr.length,当L为10时数组越界,所以L初始值应该是arr.length-1,参照如下修改:
// arr = new int[10]; System.out.println("请输入要插入的数据:"); Scanner sc = new Scanner(System.in); n = sc.nextInt();// n为要插入的数据 System.out.println("请输入要插入的位置:"); Scanner sc1 = new Scanner(System.in); k = sc1.nextInt();// K为插入的位置 // int L = arr.length-1;// 没插入数据前数组的长度 for (int L = arr.length - 1; L > k; L--) { arr[L] = arr[L - 1]; } arr[k] = n;
如果解决了你的疑惑,请采纳,祝学习愉快~
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星