Написать функцию которая возвращает 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>
→ Ссылка