读入n个数,并把他存入一个数组,并且数字不能重复
2010-11-28 20:05
232 查看
//1。从命令行输入十个数字,并存在一个数组里,且不允许重复 //其实完全可以用Set类,但是既然要求用数组,那就来吧 public static float[] arraySet(int num) throws Exception{ BufferedReader brInput=new BufferedReader(new InputStreamReader(System.in));//定义输入流,从命令行输入 float[] array=new float[num];//创建一个可以存放num个数字的数组,也就是要返回的对象 float temp=0;//用来参与循环的临时变量 for(int i=0;i<num;i++){ //一共循环num次,放入num个数 temp=Float.parseFloat(brInput.readLine());//将用户输入的数据转成float类型。其实这里应该进行检查用户是否输入的是数值,不过算了,知道就行了 //如果输入的是0,那么请用户重新一个数字,当然你也可以将数组初始化成别的难猜的数字比如4139.2068,或者连这个数你也想让用户输入的话,那你就再写一句判断一下数组里是否只有一个这个数 if(temp==0.0){ i--;//你要不--的话,用户输入几个0,你数组就少几个数 System.out.println("对不起,不能输入0这个数字,请重新输入"); continue;//嗯哏~ } for(int j=0;j<i+1;j++){ //如果已经输入过了,骂他一句,i--跟上一个道理 if(array[j]==temp){ System.out.println("啊呀,你脑子不好使啊?这个数你刚刚输入过了"); i--; break; }else //你也可以选择j<num,那就是遍历整个数组一遍,如果num很大的话,我这样会减少很大开销的,不要总想着优化,但是能优化就优化 if((array[j]!=temp)&&(array[j]==0)){ //&&前面这句好理解吧,题干说了,不能重复。之所以不能为0,这个也好理解吧。。如果不加这个条件,那么就是只要不同就替换,那你就一直替换替换替换。。。 array[j]=temp;//不解释。。。 //System.out.println(Arrays.toString(array));//这句用来测试 break;//哦哦~再来输入一个字吧~ } } } return array; }
相关文章推荐
- 向一个容量为100的数组中随机的插入1-100中的数,并且数字不能重复
- randnumber_mn.c 生成一个数组,包括k个不重复的整数,并且要求这些整数范围为[m,n),生成的结果中不能包含inum中的数字,size表示inum的长度
- 【转】产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- java 一个int数组 长度为100 随机生成100个数 即1-100 将其插入进数组 插入的数字不能重复
- a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- 温故知新--数组(产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。)
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。自己写的算法
- 用c# 产生一个 int 数组 长度为100,并向其中随机插入 1-100 ,并且不能重复
- a 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复
- 面试题目产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复。
- 产生一个int数组,长度为100,并向其中随机插入1-100,并且不能重复