读书人

请高手帮小弟我看下这段程序为什么会出

发布时间: 2011-12-07 22:35:48 作者: rapoo

请高手帮我看下这段程序为什么会出错.?
import java.util.* ;

public class xuanjv{



static boolean judge2(String a){
boolean b=false ;
for(int c=0;c<3;c++)
if(a.charAt(c)!='a'&&a.charAt(c)!='b'&&a.charAt(c)!='c')
b= true ;
return b ;

}


static boolean judge1(String a){
boolean b=false ;
for(int c=0;c<3;c++)
{for(int d=c+1;d<3;d++)
if(a.charAt(c)==a.charAt(d))
b=true ;
}
return b ;
}


public static void main(String args[]){
System.out.println("现在开始选举.") ;

Scanner a ;
int b ;
boolean c=false ;



do{
System.out.print("请输入投票人数:") ;
b=0 ;
try{a = new Scanner(System.in) ;
b = Integer.parseInt(a.nextLine()) ;
c = true ;}
catch(Exception d){
System.out.println("非法的输入!") ;
}
}while (c!=true) ;





int f ;
String g[] = new String[b] ;
char h[][] = new char[b][3] ;
int i;









do{
c = true ;
for(f=0;f<b;f++)
{System.out.print("请输入第"+(f+1)+"张投票内容:") ;
a = new Scanner(System.in) ;
g[f] = a.nextLine() ;
if(g[f].replaceAll(" ","").length()!=3)
{c = false ;
System.out.println("刚才的输入有误,请重新输入!") ;
break ;}
else
g[f] = g[f].replaceAll(" ","") ;
if(judge1(g[f]))
{System.out.println("此张选票无效!原因是有相同元素.") ;continue ;}
if(judge2(g[f]))
{System.out.println("此张选票无效!原因是输入了\"a b c\"以外的元素.") ;continue ;}
for(i=0;i<3;i++)
h[f][i] = g[f].charAt(i) ;

}
}

while (c!=true) ;

for(f=0;f<b;f++)
for(i=0;i<3;i++)
System.out.println(h[f][i]) ;


}


}




我的本意是做一个投票程序,然后把所有的票都打印出来,那票只限于a b c 三个字符..程序如上.但是在输出时却出错...



现在开始选举.
请输入投票人数:5
请输入第1张投票内容:a b c
请输入第2张投票内容:a a a
此张选票无效!原因是有相同元素.
请输入第3张投票内容:b b b
此张选票无效!原因是有相同元素.
请输入第4张投票内容:a b c
请输入第5张投票内容:a b c
a
b
c

处理已完成。

本来有三张票是正确的,但只输出了一张..
请问为什么会出现这个问题?

[解决办法]

Java code
现在开始选举.请输入投票人数:非法的输入!请输入投票人数:a b c非法的输入!请输入投票人数:5请输入第1张投票内容:a b c请输入第2张投票内容:1 2 3此张选票无效!原因是输入了"a b c"以外的元素.请输入第3张投票内容:a c b请输入第4张投票内容:a a b此张选票无效!原因是有相同元素.请输入第5张投票内容:c b aabc```acb```cba
[解决办法]
我测试了你的程序,本来就是输出全部的票数呀,这不正是你想要的吗,你还要怎样

读书人网 >J2SE开发

热点推荐