http://acm.hdu.edu.cn/showproblem.php?pid=2027
image.png
image.png
思路:
对于所输入的字符串,用循环进行遍历,当此时的字符与元音字母相同时,开始计数。
代码如下:
public class acm2017 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
while(n>0)
{
int q=0;
int w=0;
int r=0;
int t=0;
int y=0;
String c = in.nextLine();
for(int j = 0;j<c.length();j++)
{
char m = c.charAt(j);
if(m=='a')
{
q++;
}
if(m=='e')
{
w++;
}
if(m=='i')
{
r++;
}
if(m=='o')
{
t++;
}
if(m=='u')
{
y++;
}
}
System.out.println("a:"+q);
System.out.println("e:"+w);
System.out.println("i:"+r);
System.out.println("o:"+t);
System.out.println("u:"+y);
q=w=r=t=y=0;
}
n--;
if(n==0)
{
n=in.nextInt();
}
}
反思:由于使用java语言,暂时还不会用java语言代表C语言中的scanf("%n",&n)!=EOF,我用另一种方法,当循环到n为0时,对n重新进行赋值。此时,用户可以再次输入,程序不会终止。