В
Все
У
Українська література
Г
Геометрия
Д
Другие предметы
Э
Экономика
Г
География
О
ОБЖ
М
Математика
М
МХК
Х
Химия
Қ
Қазақ тiлi
Л
Литература
У
Українська мова
О
Обществознание
Ф
Физика
А
Английский язык
А
Алгебра
И
История
Б
Беларуская мова
Б
Биология
М
Музыка
П
Право
И
Информатика
П
Психология
В
Видео-ответы
Н
Немецкий язык
Ф
Французский язык
О
Окружающий мир
Р
Русский язык
Лесолес
Лесолес
02.02.2023 11:09 •  Информатика

Решить по программированию на языке c++
: создать массив произведений отсортировать в порядке увеличения количества символов в названии вывести на экран название с самым маленьким и самым большим количеством символов, с самым маленьким и самым большим количеством гласных, и самым маленьким и самым большим количеством согласных.

Ответ:
Эмиль08072013
Эмиль08072013
24.07.2020 07:58

#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, вводишь следующее название и так до конца.

Код получился большим относительно, можно меньше, но тогда будет немного сложен для начинающих программистов, поэтому писал максимально простым языком.

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?