Решить по программированию на языке c++
: создать массив произведений отсортировать в порядке увеличения количества символов в названии вывести на экран название с самым маленьким и самым большим количеством символов, с самым маленьким и самым большим количеством гласных, и самым маленьким и самым большим количеством согласных.
#include "stdafx.h"
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
setlocale(LC_ALL, "Russian");
int str;
cout << "Введите количество произведений: ";
cin >> str;
string glasnie = "ауоыиэяюеё";
string soglasnie = "бвгджзйклмнпрстфхцчшщ";
string * text = new string[str];
string buffer;
cin.get();
for (int i = 0; i < str ; i++)
{
cout << "Название [" << i + 1 << "]: ";
getline(cin, buffer);
text[i] += buffer;
}
cout << "\nСортировка по самому длинному названию: " << endl;
for (int i = 0; i < str - 1; i++)
{
for (int j = i + 1; j < str; j++)
{
if (text[i].length() < text[j].length())
{
string box = text[i];
text[i] = text[j];
text[j] = box;
}
}
}
for (int i = 0; i < str; i++)
{
cout << text[i] << endl;
}
cout << "\nСамое большое количество символов: " << text[0] << endl;
cout << "Самое малое количество символов: " << text[str-1] << endl;
int glasn_max = 0;
int glasn_min = 0;
string gmax, gmin;
bool check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < glasnie.length(); k++)
{
if (text[i][j] == glasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
glasn_min = counter;
gmin = text[i];
}
if (glasn_max < counter)
{
glasn_max = counter;
gmax = text[i];
}
if(glasn_min > counter)
{
glasn_min = counter;
gmin = text[i];
}
}
cout << "\nСамое большое кол-во гласных: " << gmax << endl;
cout << "Самое малое кол-во гласных: " << gmin << endl;
int sglasn_max = 0;
int sglasn_min = 0;
string sgmax, sgmin;
check = 0;
for (int i = 0; i < str; i++)
{
int counter = 0;
for (int j = 0; j < text[i].length(); j++)
{
for (int k = 0; k < soglasnie.length(); k++)
{
if (text[i][j] == soglasnie[k])
{
counter++;
}
}
}
if (check == 0)
{
check = 1;
sglasn_min = counter;
sgmin = text[i];
}
if (sglasn_max < counter)
{
sglasn_max = counter;
sgmax = text[i];
}
if (sglasn_min > counter)
{
sglasn_min = counter;
sgmin = text[i];
}
}
cout << "\nСамое большое кол-во согласных: " << sgmax << endl;
cout << "Самое малое кол-во согласных: " << sgmin << endl;
delete[] text;
return 0;
}
Объяснение:
Писал в visual studio. Как работает: Вводишь число произведений, далее вводишь названия произведений. Ввел одно название, жмешь Enter, вводишь следующее название и так до конца.
Код получился большим относительно, можно меньше, но тогда будет немного сложен для начинающих программистов, поэтому писал максимально простым языком.