8-2 作业给大家一个标准的答案吧
感觉做的比较麻烦
算是全符合需求
感觉代码偏多
import java.util.Scanner;
public class Sad {
//显示提示信息
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 [] insetDate(){
int[] a=new int[10];
Scanner sc=new Scanner(System.in);
for(int i=0;i<a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个数据");
int n=sc.nextInt();
if(n==0){
System.out.println("数据不能为0,请重新输入");
i--;
continue;
}
a[i]=n;
}
System.out.println("数组中的元素为");
for(int x:a){
if(x!=0){
System.out.print(x+" ");
}else{
continue;}
}
System.out.println();
return a;
}
//显示所有数据
public void showDate(int[] a,int length){
System.out.println("数组中的元素为");
for(int x:a){
if(x!=0){
System.out.print(x+" ");
}else{
continue;}
}
System.out.println();
}
//在指定位置插入数据
public void insetAtArray(int[] a,int n,int k){
Scanner sc=new Scanner(System.in);
System.out.println("请输入插入的数字");
for(int i=0;i<1;i++){
n=sc.nextInt();
if(n==0){
System.out.println("插入的数字不能为0,请重新输入");
i--;
continue;
}
}
System.out.println("请输入插入的位置");
k=sc.nextInt();
for(int i=a.length-1;i>k;i--){
a[i]=a[i-1];
}
a[k]=n;
System.out.println("数组中的元素为");
for(int x:a){
if(x!=0){
System.out.print(x+" ");
}else{
continue;}
}
System.out.println();
}
//查询能被3整除的数据
public void divThree(int[] a){
System.out.println("能被3整除的数为");
int i=0,j=0;
for(int x=0;x<a.length;x++){
if(a[x]!=0){
if(a[x]%3==0){
System.out.print(a[x]+" ");
}else{
i++;
}
if(i==a.length){
System.out.println("没有能被3整除的数");
}
}
if(a[x]==0){j++;
}
if(j==a.length){
System.out.println("没有能被3整除的数");
}
}
System.out.println();
}
public static void main(String[] args) {
Sad sa=new Sad();
boolean flag=true;
Scanner sc=new Scanner(System.in);
int[] a=new int[10];
while(flag){
sa.notice();
int n=sc.nextInt();
switch(n){
case 1: a=sa.insetDate();break;
case 2: sa.showDate(a, n);break;
case 3: sa.insetAtArray(a, n, n);break;
case 4: sa.divThree(a);break;
case 0:System.out.println("程序结束");
flag=false;
break;
default:System.out.println("请重新输入");
}
}
}
}
正在回答 回答被采纳积分+1
我个人觉得你的插入数据的这个方法是需要完善的,运行起来和视频要实现的结果有一定的差异,每次要准备要运行插入的数据选择时候选择数字3以后 在选择要插入的位置 不管任何位置都会是插入值为3的数据 我个人觉得这个应该是这样写:
public void inertAtArry(int[] a, int n, int k){
System.out.println("请输入要插入的数据");
Scanner sc = new Scanner(System.in);
n =sc.nextInt();
System.out.println("请输入插入的位置");
Scanner scc = new Scanner(System.in);
k=scc.nextInt();
for(int i = a.length-1; i > k;i--){
a[i] = a[i-1];
}
a[k] = n;
System.out.println("数组中的元素为");
for(int x:a){
if(x!=0){
System.out.print(x+" ");
}else{
continue;}
}
谢谢你的分享,我也分享我的。
package com.project; /** * * @author Jerbiner * @version 1.0 */ import java.util.Scanner; public class Practice { public void notice() { System.out.println(); 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 void insertData(int[] arr) { for (int i = 0; i < 9; i++) { System.out.println("请输入第" + (i + 1) + "个数据"); Scanner input = new Scanner(System.in); arr[i] = input.nextInt(); } for (int i=0;i<9;i++) { System.out.print(arr[i] + " "); } } public void showData(int[] a) { for (int i=0;i<10;i++) { if(a[i]!=0) System.out.print(a[i] + " "); } } public void insertAtArray(int[] a, int n, int k) { if (k == 9) a[9] = n; if (k >= 1 && k <= 8) { for (int i = 9; i > k - 1; i--) { a[i] = a[i - 1]; } a[k] = n; } for (int j : a) { System.out.print(j + " "); } } public void divThree(int[] a) { for (int i = 0; i < 10; i++) { if (a[i] % 3 == 0) System.out.print(a[i] + " "); } } public static void main(String[] args) { Practice demo = new Practice(); int[] arr = new int[10]; while (true) { demo.notice(); Scanner input = new Scanner(System.in); int n = input.nextInt(); if (n == 0) { System.out.println("退出程序"); break; } else { switch (n) { case 1: demo.insertData(arr); break; case 2: demo.showData(arr); break; case 3: System.out.println("请输入要插入的数据:"); int i = input.nextInt(); System.out.println("请输入要插入数据的位置:"); int j = input.nextInt(); demo.insertAtArray(arr, i, j); break; case 4: demo.divThree(arr); break; } } } } }
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星