Написать функцию которая возвращает True, если символ, полученный функцией в качестве аргумента, является согласной
Написать функцию Sogl, которая возвращает True, если символ, полученный функцией в качестве аргумента, является согласной буквой русского алфавита и False, если буква гласная.
#include <iostream>
using namespace std;
int Sogl(char n) {
int k = true;
char mas[11] = { 'а', 'у', 'о', 'ы', 'и', 'э', 'я', 'ю', 'ё', 'е' };
for (int i = 0; i < 11; i++) {
if (n == mas[i])
k=false;
}
return k;
}
void main() {
setlocale(LC_ALL, "ru");
char n;
cout << "Введите букву: "; cin >> n;
if (Sogl(n) == false)
cout << "Буква гласная" << endl;
else
cout << "Буква согласная" << endl;
}
Постоянно возвращает true не пойму как исправить
Ответы (2 шт):
Автор решения: Harry
→ Ссылка
То, что вы хотите, делается заменой
if (n == mas[i]) k=false;
на
if (n == mas[i]) return false;
Автор решения: YxTiBlya
→ Ссылка
вместо setlocale(LC_ALL,"ru) нужно написать
SetConsoleCP( 1251 );
SetConsoleOutputCP( 1251 );
и не забыть #include <windows.h>