我目前正在尝试制作一个简单的程序来计算多个句子中的元音数量。输入如下:
6
艾米丽高高跃起
亚历克斯没有跳过
菲利普讨厌跳跃
红龙可以飞翔
三明治很不错
我喜欢太阳
数字表示有多少行。我的问题是,当我打印出结果时,最后一行会被忽略。所以该程序打印出5个整数而不是6个整数。我已经玩了好几年了,我似乎无法理解这个问题。
Scanner in = new Scanner(System.in);
int cases = in.nextInt(); //how many lines there are
String a;
int vowels = 0;
int length; //length of a line
char temp;
in.nextLine(); //skips first line of the input, as this declares how many lines there are
for (int i = 0; i <= cases; i++)
{
a = in.nextLine();
length = a.length();
//System.out.println(a);
for (int b = 0; b < length; b++)
{
temp = a.charAt(b);
if (temp == 'a' || temp == 'e' || temp == 'i' || temp == 'o' || temp == 'u')
{
vowels++;
}
}
System.out.println(vowels);
vowels=0;
}
答案 0 :(得分:0)
出于某种原因,当我发布输入时,它会自动显示前5个整数,然后我只需按Enter键即可显示最后一个。所以显然击中输入现在也是我获得的技能之一;)
答案 1 :(得分:0)
你在循环中有额外的步骤:
for (int i = 0; i <= cases; i++)
你需要的循环是:
for (int i = 0; i < cases; i++)
答案 2 :(得分:0)
你正在循环案例+ 1次,即7次。你应该使用
for (int i = 0; i < cases; i++)
或
for (int i = 1; i <= cases; i++)
否则您的代码将打印预期的输出。
答案 3 :(得分:0)
您的代码运行正常。您只需将一个问题更改为i <= case
至i < case
。您可以使用此网站使用标准输入来测试您的代码。
https://ideone.com/Ud3MWt