求教大神关于防止重复输入
java吧
全部回复
仅看楼主
level 4
dany198x 楼主
Scanner reader=new Scanner(System.in);
int a[]=new int[100]//随便几个数字,不一定100
int count;
for (count=0;count<100;count++)
{System.out.println("input a number");
a[count]=reader.nextInt();
}
现在我想在上面代码的基础上加上防止输入已有数值的功能应该怎么实现啊。
比如
第一个输入1
第二个输入2
第三个输入1 提示重复
再输入2 提示重复
输入3
第四个。。。。。。。。。。。
小弟刚学,试了好几遍,每次都是前几个循环正确后面就不对了

2012年09月11日 16点09分 1
level 16
用一个 list 记录已输入过的,然后之后输入时看是否在那个 list中
2012年09月11日 16点09分 2
不好意思能具体一点,list是建立另一个数列?我想的是可以在输入重复数字的时候,就提示错误然后要求重新输入。
2012年09月11日 16点09分
level 14
输入之后编历前面的元素,如果重复了的话count--就行了……
目测用set也行……
我是新手,没怎么用过容器……
2012年09月11日 16点09分 3
我超新手,这学期才学。。。你讲的set和容器我都没听过。。。
2012年09月11日 16点09分
回复@dany198x :我也是才听说[呵呵]
2012年09月11日 17点09分
level 4
dany198x 楼主
下面是我自己想的,我知道肯定不对,但是想了好久还是不知道应该怎么改
int a[]=new int[100];
int b=0;
int c;
while (b<100)
{
System.out.println("number please");
a=reader.nextInt();
c=0;
while (c<b){
if (a[b]==a[c])
{
System.out.println("wrong");
System.out.println("numberagain");
a=reader.nextInt();
}
else
c=c+1;
}
b=b+1;
}
}
2012年09月11日 16点09分 4
吧务
level 15
输好后把数组从头到目前index-1都看一下,是不是重复了。。。
2012年09月11日 16点09分 5
[瀑布汗~]你是指直接目测吗。。。
2012年09月11日 16点09分
@dany198x 输入的值你已经知道了,然后从头循环数组,挨个比较数组值与刚才输入的值,就可以知道是否重复了。。。具体的循环终止条件什么的,想一下就明白了。可以画图,更利于理解。。。
2012年09月11日 17点09分
回复 libo_juve :恩我也是这样想的,从头开始一个个比,但循环什么就是弄不对,我再试试吧
2012年09月11日 17点09分
level 12
你可以传一个方法,传一个数组参数和一个int参数进去,然后判断这个int参数在不在这个数组里面,在的话,就return false 否则就return true;每次输入的时候都调用这个方法用if语句进行下判断,ture就怎么怎么样,fale级怎么怎么样
2012年09月11日 16点09分 6
是创一个方法。。。
2012年09月11日 16点09分
回复 zyy11223344 :恩好的,我试试看
2012年09月11日 17点09分
level 14
先不做处理把数组输完,然后从头开始一个一个查,把后面重复的都干掉……可能会快一些?。。。床上翻来覆去中,谁来算一下时间复杂度?
2012年09月11日 17点09分 7
level 9
[打酱油]大婶们都解决了,我出来看看酱油
行情如何。。。
2012年09月12日 05点09分 9
level 10
[拍砖]每次输入循环一边数组和输入的数字比较,,出现相同就提示,没有相同就添加
2012年09月12日 05点09分 10
level 4
dany198x 楼主
谢谢楼上各位启发,已经解决了,用了很原始的方法
2012年09月12日 08点09分 11
level 10
下面加个for循环吧,把刚输入的跟前面的数组挨着比较,虽然笨了点,但是初学者你也正能用这个方法了
2012年09月12日 09点09分 12
1