Условие задачи:
К гласным буквам в латинском алфавите относятся буквы A, E, I, O, U и Y. Остальные буквы считаются согласными. Напишите программу, считающую количество гласных букв в тексте.
Входные данные:
Во входном файле содержатся одна строка текста, состоящая только из заглавных латинских букв и пробелов. Длина строки не превышает 100 символов.
Выходные данные:
В выходной файл вывести одно целое число – количество гласных во входном тексте.
Входные данные | Выходные данные |
BE HAAAAPPY ! | 6 |
ZACHTITE PLEASE | 6 |
BBC KLMN | 0 |
Код программы:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
import java.util.*; import java.lang.*; import java.io.*; class Ideone { public static void main (String[] args) { Scanner x = new Scanner(System.in); String str; int c = 0; String s = "AEIOUY"; str = x.nextLine(); for (int i = 0; i < s.length(); i++) { for (int j = 0; j < str.length(); j++) { if ( str.charAt(j) == s.charAt(i) ) { c++; } } } System.out.print(c); } } |
Алгоритм решения:
Строка вводится пользователем согласно условию. Перебираем по каждой букве введенной строки или не равны они с соответствующей индексу гласной букве. Если равны, прибавляем счетчику 1. Далее в, любом случае, ищем по оставшимся гласным буквам.
Условие задачи на e-olymp.com
Проверка решения на e-olymp.com
Рабочий код на ideone.com
Так поступать нельзя. Нужно посмотреть методы класса String и выбрать тот, который поможет решить Вашу задачу. Вы просто переписали один из методов и сделали это очень не эффективно. Сейчас Ваша программа уже установив, что текущая буква А, продолжает проверку, вдруг она окажется E, или I, или O, или U, или Y…