Описать рекурсивную процедуру Del(L), удаляющую последнее звено из непустого списка L (type list = ^link; link = record elem: char; next: list end; var L: list;). При удалении освобождается память, занимаемая этим звеном.
#include <vector> #include <algorithm> using namespace std; int main() { string s; vector<char> vowels = {'a','e','i','o','u','y'}; cin >> s; int count_letters = 0; //сколько букв одной гласности подряд int count = 0; // сколько букв добавить int state = -1; //для гласности int c = state; // для запоминания for(int i = 0 ;i < s.length(); i++, c = state) { if(find(vowels.begin(),vowels.end(),s[i])!= vowels.end()) state = 0; else state = 1; if(c==state) count_letters++; if(count_letters == 3) { count_letters = 1; //так как одна буква остается справа от разделяющей count++; } } cout << count; }
ответ 51. И так, вам ввели начальные значения переменных. Вас требуют проверить два условия. Если результатом его проверки будет true(т.е. истина, а истина в данном случае будет, только если оба условия будут истинными) то вы должны выполнить следущие действия: x=3*a+2*b+c, если результатом проверки логических выражений будет false(т.е. ложь, а ложь в данном случае будет при условии, что хотя бы 1 из данных логических выражений ложное, ну или оба выражения ложные), то тогда вы выполняете это: x=5*a-b+c. И так, выполняем алгоритм 10>5 и 5>6? Нет, т.к. второе условие не выполняется. Значение логического выражения false, значит выполняем действия по ветке else(иначе), x=5*10-5+6=51 Всё. На экран выведится число 51. маловато для такого развёрнутого объяснения, так что отметьте хотя бы как лучший ответ \_(•_•)_/
#include <algorithm>
using namespace std;
int main() {
string s;
vector<char> vowels = {'a','e','i','o','u','y'};
cin >> s;
int count_letters = 0; //сколько букв одной гласности подряд
int count = 0; // сколько букв добавить
int state = -1; //для гласности
int c = state; // для запоминания
for(int i = 0 ;i < s.length(); i++, c = state) {
if(find(vowels.begin(),vowels.end(),s[i])!= vowels.end())
state = 0;
else state = 1;
if(c==state) count_letters++;
if(count_letters == 3) {
count_letters = 1; //так как одна буква остается справа от разделяющей
count++;
}
}
cout << count;
}
И так, вам ввели начальные значения переменных. Вас требуют проверить два условия. Если результатом его проверки будет true(т.е. истина, а истина в данном случае будет, только если оба условия будут истинными) то вы должны выполнить следущие действия: x=3*a+2*b+c, если результатом проверки логических выражений будет false(т.е. ложь, а ложь в данном случае будет при условии, что хотя бы 1 из данных логических выражений ложное, ну или оба выражения ложные), то тогда вы выполняете это: x=5*a-b+c.
И так, выполняем алгоритм
10>5 и 5>6? Нет, т.к. второе условие не выполняется. Значение логического выражения false, значит выполняем действия по ветке else(иначе), x=5*10-5+6=51
Всё. На экран выведится число 51.
маловато для такого развёрнутого объяснения, так что отметьте хотя бы как лучший ответ \_(•_•)_/