char s[250];
int i,j, k;
bool f;
cout << "Введите слова: ";
gets_s(s);
k = 0;
for (i = 0; i < strlen(s); i++)
{
f = true;
if ((s[i] == ' '))
{
f = false;
}
else
{
if (f)
{
if (s[i] == 'а')
k++;
f = true;
}
}
}
cout << k;
return 0;
}
Почему даже если нет нужного в строке, оно выводит числа больше 1?
f = true; if ((s[i] == ' ')) { f = false; } else { if (f) { if (s[i] == 'а') k++; f = true; } } вот тут точно else должен быть?
Наверное в if (f) должно быть f = false?)
Какая задача?
Имхо, тут либо f = true надо вынести из тела цикла, либо else убрать.
Не, так-же считает а, но их нет
Так у него f == true только если первое условие не сработало, нахуя там else { if (f)?
так f и так вне тела
Где? for (i = 0; i < strlen(s); i++) { f = true; if ((s[i] == ' ')) { f = false; } else { if (f) { if (s[i] == 'а') k++; f = true; } } }
Какая разница, где оно объявлено? Ему значение true присваивается на каждой итерации
может это как то связано с тем, что там русское 'a'?
А зачем там, кстати, f = true;? Чтоб оно стало true ещё сильнее? Наркомания какая-то.
ну там вообще f никакой роли в программе не играет
Было б странно, если б это было не так.
наверное, вместо char s[250] нужно какое-нибудь wchar s[250] или как оно там
Может там какое koi-8r
Обсуждают сегодня