47 / 2 / 0
Регистрация: 25.12.2017
Сообщений: 424
1

Найти количество слов, которые содержат одинаковое количество гласных и согласных букв

18.12.2018, 22:38. Показов 2922. Ответов 2

Студворк — интернет-сервис помощи студентам
С клавиатуры вводиться текстовую строку. Разработать программу, которая выполняет:
a) количество слов, которые содержат одинаковое количество гласных и согласных букв;
б) выводит на экран самое длинное слово;
в) удаляет из текста слово-палиндромы;

Мну нужно сделать задания а (но можете проверить и б и в на правильность)

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <string>
 
using namespace std;
 
void set_longest(string* current_word, string* new_word)
{
  if (new_word->length() > current_word->length())
    *current_word = *new_word;
}
int is_palindrome(string* word)
{
  if (word->length() > 0)
  {
    size_t index1 = 0;
    size_t index2;
    index2 = word->length()-1;
    for(; index1 < index2; ++index1, --index2)
      if(word->at(index1) != word->at(index2))
        return 0;
  }
  return 1;
}
int main()
{
  string result = "";
  string s;
  string delimiter = " ";
  string longest_word = "";
  size_t pos;
  cout << "Enter your text and press [enter]: ";
  getline(cin, s);
  pos = s.find(delimiter);
  while (pos != std::string::npos)
  {
    string token;
    token = s.substr(0, pos);
    set_longest(&longest_word, &token);
    if (!is_palindrome(&token))
      result += token;
    result += delimiter;
    s.erase(0, pos + delimiter.length());
    pos = s.find(delimiter);
  }
  set_longest(&longest_word, &s);
  if (!is_palindrome(&s))
    result += s;
  cout << "The first longest word is: " << longest_word << endl;
  cout << "string w/o palindromes: " << result << endl;
  system ("pause");
  return 0;
}
Добавлено через 1 минуту
Ну и помогите нормально настроить русской язык, а то пишу setlocale( LC_ALL,"Russian" ) а оно выдает символы по типу %№!%;?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.12.2018, 22:38
Ответы с готовыми решениями:

Подсчитать количество слов в тексте, которые содержат одинаковое количество букв
помогите плз....если не сложно то с пояснениеями. Подсчитать количество слов в тексте,...

Подсчитать количество слов, содержащих одинаковое количество гласных и согласных
1. С клавиатуры вводиться текст. Составить программу,которая подсчитывает количество слов, что...

Найти максимальную длину кольца, построенного из слов, содержащих одинаковое количество гласных и согласных
Ребята, помогите составить программу на PascalABC. Найти максимальную длину кольца, построенного...

Напечатать слова, содержащие одинаковое количество гласных и согласных букв
Дана строка,состоящая из слов.Напечатать слова, содержащие одинаковое количество гласных и...

2
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 1
12.11.2019, 15:11 2
У меня в лабе точно такие же задания, я нагуглил только б и в, может кому-то пригодится

б)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string a, b, res;
    int max = 0;
    cout << "Write your line (ENG):" << endl;
    getline(cin, a);
    a = a + ' ';
    for (int i = 0; i < a.length(); i++)
    {
    b += a[i]; 
    if (!(isalpha(a[i]))) 
    {
    b.pop_back();
    if (b != "")
    if (b.length() > max)
    {
    max = b.length();
    res = b;    
    }
    b = "";
    }
    }  
    cout << "Samoe dlinnoe slovo: " << res << endl;
    system("pause"); 
    return 0;   
}

в)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <stdio.h>    
#include <string.h>    
#include <conio.h>
#include <iostream>
 
using namespace std;
 
int palindrome(char* s)    
{
    int beg = 0;                           // начало слова                      
    int end = strlen(s) - 1;               // конец  слова        
    while (beg < end)    
        if (s[beg++] != s[end--])    
            return 0;                      // не палиндром                  
    
    return 1;                              // палиндром    
}
int main()    
{
    system("cls");
    char  str[100];
    cout<<"Enter your line: "<<endl; 
    gets(str);  
    char  tmp[100];                        // рабочая строка
    char* delim = " ,.?!:-;+*=/<>(){}[]";// разделители слов
    char* word;                            // выделяемое слово
    char* p;                               // указатель на начало слова
    puts(str);                             // печатаем исходную строку
    strcpy(tmp, str);                      // копируем строку в рабочий массив
    word = strtok(tmp, delim);             // выделяем первое слово в рабочей строке
    // цикл обработки слов в рабочей строке
    while(word)
    {
        if(palindrome(word))               // если слово - палиндром
        {
            p = strstr(str, word);         // находим его в исходной строке        
            strcpy(p, p + strlen(word));   // удаляем его из исходной строки
        }
        word  = strtok(NULL, delim);       // выделяем следующее слово в рабочей строке          
    }
    puts(str);                             // печатаем строку без палиндромов
    getch();
    return 0;
}
0
0 / 0 / 0
Регистрация: 16.06.2021
Сообщений: 1
16.06.2021, 11:48 3
Может кому-то еще нужно будет.

а)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    SetConsoleOutputCP(1251);
    SetConsoleCP(1251);
    char s[100] = { '\0' };
    int vowels = 0, consonants = 0, words = 0;
    printf("Введите предложение: ");
    gets_s(s);
    int j;
    for (int i = 0; s[i] != '\0'; i++)
    {
        if (s[i] != ' ' || s[i] != '.' || s[i] != ',')
        {
            if (s[i] == 'а' || s[i] == 'о' || s[i] == 'е' ||
                s[i] == 'и' || s[i] == 'у' || s[i] == 'і' ||
                s[i] == 'А' || s[i] == 'О' || s[i] == 'Е' ||
                s[i] == 'И' || s[i] == 'У' || s[i] == 'І')
            {
                vowels++;
            }
            else if ((s[i] >= 'а' && s[i] <= 'я') || (s[i] >= 'А' && s[i] <= 'Я'))
            {
                consonants++;
            }
        }
        if (s[i] == ' ' || s[i] == '.' || s[i] == ',')
        {
            if (vowels == consonants)
            {
                words++;
            }
            consonants = vowels = 0;
        }
    }
    printf("Слов в которых количество гласных и согласных букв одинаковое: %i\n", words);
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.06.2021, 11:48
Помогаю со студенческими работами здесь

Напечатать слова, содержащие одинаковое количество гласных и согласных букв
Дана строка,состоящая из слов.Напечатать слова, содержащие одинаковое количество гласных и...

Определить количество слов, которые содержат более трех согласных букв в словах с нечетным номером
Всем привет, помогите решить задачку Составить программу, используя множественный тип. Дана...

Распечатать слова предложения, которые содержат одинаковое количество букв
Не могу написать последние три задачки: 1)Составьте программу вычисления среднего арифметического...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru