import java.util.Scanner;
class ArrayTools
{
//pubcli
}
class KeyboardInput
{
//ArrayTools.arrayPrint(arr);
public static void main(String[] args)
{
Scanner sc = new Scanner(System.in);//封装
System.out.println("欢迎使用,首先您需要设定一个数组");
int arr[];
arr =inputElement();//设定数组
System.out.println("您输入的数组是");
arraySort(arr); //排序数组
arrayPrint(arr); //打印数组
while(true){
System.out.println("----------------------菜单---------------------");
System.out.println("1.删除数组元素  ̄▽ ̄ 2.添加数组元素");
System.out.println("3.更改数组元素 4.查找数组元素");
System.out.println("5.打印数组元素 6. 敬请期待 ");
System.out.println("请输入功能菜单键");
int x=sc.nextInt();
switch(x){
case 1:
System.out.println("首先帮您查找该数是否存在:");
boolean b = elementSearch(arr); //查找数组
if(b)
delete(arr);
arrayPrint(arr);
break;
case 2:
arrayPrint(arr = elementAdd(arr));
break;
case 3:
boolean f =elementChange(arr); //经典的判断语句。
break;
case 4:
elementSearch(arr); //查找数组
break;
case 5:
arrayPrint(arr); //打印数组
break;
default:
System.out.println("输入错误!!");
break;
}
}
}
/*
arrayPrint(arr); //打印数组
arraySort(arr); //排序数组
arrayPrint(arr);
elementSearch(arr); //查找数组
delete(arr); //删除元素
arrayPrint(arr);*/
//输入数组
public static int[] inputElement(){
Scanner sc = new Scanner(System.in);//封装
System.out.println("请输入数组的长度:");
int looplength = sc.nextInt();
int []arr = new int[looplength];
int element =0;
for(int x =0;x<looplength;x++){
System.out.println("请输入第"+(x+1)+"个元素:");
element=sc.nextInt();//element元素
arr[x] = element;
}
return arr;
}
//数组打印
public static void arrayPrint(int []arr){
for(int x=0;x<arr.length;x++){
if(arr[x]==-9000)
return;
System.out.print(arr[x]+" ");
}
System.out.println( );
}
//数组排序
public static void arraySort(int []arr){
for(int y=0;y<arr.length-1;y++){
for(int x=0;x<arr.length-y-1;x++)
if(arr[x]<arr[x+1]){
arr[x]=arr[x]^arr[x+1];
arr[x+1]=arr[x]^arr[x+1];
arr[x]=arr[x]^arr[x+1];
}
}
}
//查找元素
public static boolean elementSearch(int []arr){
System.out.println("请输入你要查找的数字:");
Scanner sc = new Scanner(System.in);//封装
int number = sc.nextInt();
for(int x =0;x<arr.length;x++){
if(arr[x]==number)
{
System.out.println("已找到您要查询的数,它的下标是:"+x);
return true;
}
}
System.out.println("错误!未找到您要找的数字。");
return false;
}
//删除元素
public static void delete(int []arr){
System.out.println("请再次输入:");
Scanner sc = new Scanner(System.in);//封装
int number = sc.nextInt();
for(int x =0;x<arr.length;x++){
if(arr[x]==number){
for(int y=x;y<arr.length-1;y++){
arr[y]=arr[y+1];
}
arr[arr.length-1]=-9000; ----------------------------------看这里是不是智商捉急?给我一个思路,如何解决这个BUG?
}
}
}
//添加元素
public static int[] elementAdd(int[]arr){
Scanner sc = new Scanner(System.in);//封装
int[]arr_1 = new int[arr.length+1];
System.out.println("请输入你要添加的元素:");
arr_1[arr.length]=sc.nextInt();
for(int x=0;x<arr.length;x++){
arr_1[x]=arr[x];
}
return arr_1;
}
public static boolean elementChange(int []arr){
System.out.println("请输入你要更改的数字:");
Scanner sc = new Scanner(System.in);//封装
int number = sc.nextInt();
for(int x =0;x<arr.length;x++){
if(arr[x]==number){
System.out.println("您要变更为____?");
arr[x]=sc.nextInt();
System.out.println("更改成功");
return true;
}
}
System.out.println("未找到该元素");
return false;
}
}
|