java要求产生10个随机整数,存放在数组Arr中,从键盘输入要删除的数组元素,将该元素中的数据删除

如题所述

第1个回答  2013-10-16
import java.util.Random;
import java.util.Scanner;

class CreateAndDeleteData{
CreateAndDeleteData(){
int[] RandomNum = new int[10];
int q = 9;
Random rd = new Random();
int deleteNum;
for(int i =0; i< RandomNum.length;i++)
{
RandomNum[i] = rd.nextInt(100);
System.out.print(RandomNum[i]+" ");
}

System.out.println('\n'+"Please input which index number(0~9) need to be deleted(if you input -1, the program will be closed): ");
Scanner readIndex = new Scanner(System.in);

while(true){
try{
deleteNum = Integer.parseInt(readIndex.next());
if(deleteNum<=9&&deleteNum>=-1){
if(deleteNum ==-1)
break;
for(int i =deleteNum; i< RandomNum.length-1;i++)
{
RandomNum[i] = RandomNum[i+1];
}
for(int i =0; i< q;i++)
{
System.out.print(RandomNum[i]+" ");
}
System.out.println();
q--;
}
}catch(Exception e){
System.out.println("You input incorrectly.");
}

}

}

public static void main(String[] args){
new CreateAndDeleteData();
}
}追问

有这么复杂?
没看懂.......

追答

我在里面添加了异常处理,就是说如果你在键盘上输入的不是数字是字母的话,程序会提示你说输入错误,然后,具体的效果,你运行一下,看看是不是你想要的效果呢?

第2个回答  2013-10-16
import java.util.Random;
import java.util.Scanner;
public class He {

public static void main(String[] args){
int[] array = new int[10];

for(int i=0;i<10;i++) {
array[i] = new Random().nextInt(100); //产生100以内的随机整数存入数组
}
Scanner s = new Scanner(System.in);
s.nextInt();
for(int i=0;i<10;i++) {
if(s.nextInt() == array[i]); //输入的数字和数组中的一一比较,如果相等,就将那个数变成0
array[i] = 0;
}
}
}追问

你这个程序好像运行不了啊。
我也不是需要变为0 而是直接删掉。

追答

直接删除数组的内容比较麻烦..我只是用0来模拟,思路差不多,可能有点小问题

本回答被网友采纳