数据不能显示和指定位置插入数据问题
package 方法;
import java.util.Scanner;
public class Demo {
//实例化接收数据对象
static Scanner sc=new Scanner(System.in);
//数组插入数据方法
public int[] insertDate(){
int a[]=new int[10];
for(int i=0;i<a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个元素:");
a[i]=sc.nextInt();
}
System.out.println("数组元素为:");
for(int n:a){
if(n==0){continue;}
else{
System.out.print(n+" ");
}
}
System.out.println();
return a;
}
//显示数组数据方法
public void showData(int a[]){
System.out.println("数组元素为");
for(int n:a){
if(n==0)continue;
else
System.out.print(n+" ");
}
System.out.println();
}
//
public void upDate(int a[],int b,int c){
System.out.println("请输入要插入的数据:");
b=sc.nextInt();
System.out.println("请输入要插入的位置:");
c=sc.nextInt();
for(int i=a.length-1;i<c;i--){
a[i]=a[i-1];
}
a[c]=b;
}
//查询能被3整除的数据
public void divThree(int a[]){
System.out.print("能被3整除的数组元素为");
for(int n:a){
if(n%3==0){
System.out.println(n+" ");
}
}
}
//显示提示信息的方法
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) {
// TODO Auto-generated method stub
//创建10个元素的数组a[]
int a[]=new int[10];
//实例化对象
Demo D=new Demo();
//通过按键选择不同的方法
int n;
do{
D.notice();
n = sc.nextInt();
switch (n) {
case 1:
D.insertDate();;break;
case 2:
D.showData(a);break;
case 3:
D.upDate(a,n,n);break;
case 4:
D.divThree(a);break;
default:
if(n>4&n!=0)System.out.println("请输入正确的数字");break;
}
}
while(n!=0);
if(n==0){
System.out.println("程序退出");
}
}
}
问题一:插入数据后,选择2不能显示插入的数据,应该是哪里引用的不对,麻烦老师看下
问题二:在指定位置处插入数组数据方法,for(int i=a.length-1;i<c;i--){
a[i]=a[i-1];
}
a[c]=b;
为什么要这么写,不太理解,麻烦解答下
正在回答
case 1中应该是a= D.insertDate();
在指定位置插入数据:是依次移位,然后将数据插入到指定位置处。
祝学习愉快~
package 方法;
import java.util.Scanner;
public class Demo {
//实例化接收数据对象
static Scanner sc=new Scanner(System.in);
//数组插入数据方法
public int[] insertDate(){
int a[]=new int[10];
for(int i=0;i<a.length-1;i++){
System.out.println("请输入第"+(i+1)+"个元素:");
a[i]=sc.nextInt();
if(a[i]==0){
System.out.println("请输入不为0的整型数组元素");
i--;
}
}
System.out.println("数组元素为:");
for(int n:a){
if(n==0){continue;}
else{
System.out.print(n+" ");
}
}
System.out.println();
return a;
}
//显示数组数据方法
public void showData(int a[]){
System.out.println("数组元素为");
for(int n:a){
if(n==0)break;
else
System.out.print(n+" ");
}
System.out.println();
}
//在指定位置处插入数组数据方法
public void upDate(int a[],int b,int c){
System.out.println("请输入要插入的数据:");
b=sc.nextInt();
System.out.println("请输入要插入的位置:");
c=sc.nextInt();
for(int i=a.length-1;i>c;i--){
a[i]=a[i-1];
}
a[c]=b;
}
//查询能被3整除的数据
public void divThree(int a[]){
System.out.print("能被3整除的数组元素为");
for(int n:a){
if(n%3==0){
System.out.print(n+" ");
}
}
}
//显示提示信息的方法
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) {
// TODO Auto-generated method stub
//创建10个元素的数组a[]
int a[]=new int[10];
//实例化对象
Demo D=new Demo();
//通过按键选择不同的方法
int n;
do{
D.notice();
n = sc.nextInt();
switch (n) {
case 1:
a=D.insertDate();;break;
case 2:
D.showData(a);break;
case 3:
D.upDate(a,n,n);break;
case 4:
D.divThree(a);break;
default:
if(n>4&n!=0)System.out.println("请输入正确的数字");break;
}
}
while(n!=0);
if(n==0){
System.out.println("程序退出");
}
}
}
想请老师点评下
想请教下,为什么插入数据的时候,元素和位置都输入0,然后再输出数组的时候会为空?
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星