Составить блок-схему

[email protected] в категроии Информатика, вопрос открыт 17.06.2018 в 19:12


#include
#include
#define _USE_MATH_DEFINES
#include
#include
using namespace std;
string slovo(string &r) {
string e;
for (int i = 0; i < r.length(); i++)
{
if (r[i] == ' ') {
e = r.substr(0, i);
r.erase(0, i + 1);
break;
}
}
return e; }
string last(string r) {
string e;
for (int i = r.length(); i >0; i--)
{
if (r[i] == ' ') {
e = r.substr(i+1, r.length());
break;
}
}
return e;}
void preob(string &s1, string &s2) {
for (int i=0; i if (s1[i] == ' ' && s1[i + 1] == ' ') {
s1.erase(i, 1);
i--;
}
}
for (int i = 0; i < s2.length(); i++) {
if (s2[i] == ' ' && s2[i + 1] == ' ') {
s2.erase(i, 1);
i--;}
}
}
void zamena(string &s1, string &s2) {
string buff;
int k1 = 1, k2 = 1;
for (int i = 0; i < s1.length(); i++) {
if (s1[i] == ' ') k1++;
}
for (int i = 0; i < k1; i++) {
buff = slovo(s1);
if (buff[0] >= '0' && buff[0] <= '9') s2 += ' ' + buff;
else s1 += ' ' + buff;
}
for (int i = 0; i < s2.length(); i++) {
if (s2[i] == ' ') k2++;
}
for (int i = 0; i < k2; i++) {
buff = slovo(s2);
if (buff[0] >= '0' && buff[0] <= '9') s2 += ' ' + buff;
else s1 += ' ' + buff;}
}
void sort(string &s) {
string buff, next = "";
int k = 1;
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ') k++;
}
s += ' ';
for (int j = 0; j < k/2; j++) {
for (int i = 0; i < k; i++) {
buff = slovo(s);
if (next == "") {
next = buff;
}
else
if (buff[0] < next[0])
next = buff + ' ' + next;
else
if (buff[0] < next[next.length() - last(next).length()])
next.insert(next.length() - last(next).length(), buff + ' ');
else next += ' ' + buff;
}
next += ' ';
for (int i = 0; i < k; i++) {
buff = slovo(next);
if (s == "") {
s = buff;}
else
if (buff[0] < s[0]) s = buff + ' ' + s;
else
if (buff[0] < s[s.length() - last(s).length()])
s.insert(s.length() - last(s).length(), buff + ' ');
else s += ' ' + buff;
}
s += ' ';
}
}
int main() {
setlocale(0, "");
string s1, s2;
cout << "Ведите строки\n";
getline(cin, s1);
getline(cin, s2);
preob(s1, s2);
zamena(s1, s2);
sort(s1);
sort(s2);
cout << endl << s1 << endl << s2 << endl;
system("pause");
}

0 ответов

Нет результатов.
Оставлять ответы могут только авторизированные пользователи.
Зарегистрируйтесь или  авторизируйтесь на сайте чтобы оставить ответ на вопрос.