Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/25: Рейтинг темы: голосов - 25, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 1
1

Массив символов: чередование гласных и согласных букв, симметрия

26.10.2017, 13:02. Показов 4818. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день! Нужна помощь!
Не могу решить эту задачу. Возможно сам алгоритм неправильный. Я уже и не знаю. Знаю явно, что много чего неверно написано.

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

Код переписывала уже раз 100. Нынешний результат свелся к тому, что вроде бы работает все, но только с буквой а.

Код:

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
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
int main()
{
  char s[80];
  char gl[]="aeiouy";
  system("chcp 1251");
  system("cls");
  cout<<"\nVvedite stroky: ";
  gets(s);
  cout<<"\nОставшиеся слова:\n";
  char *p=strtok(s," ."); //разделение на лексемы
  int ld=strlen(p);
  int x=ld/2,q=0;
  while(p!=NULL)
  {for(int k=0,j=ld-1;k<x;k++,j--)
    if(p[k]!=p[j]) q++;
     if(q==0)
        for(int i=0; i<ld; i++)
        {if((s[i]==gl[i])&&(s[i+1]!=gl[i]))
            cout<<p<<" ";
        else if((s[i]!=gl[i])&&(s[i+1]==gl[i]))
            cout<<p<<" ";
        }
   p=strtok(NULL, " .");
  }
  cout<<endl;
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.10.2017, 13:02
Ответы с готовыми решениями:

Подсчитать количество гласных и согласных букв, а также символов, не являющихся буквами
В текстовом файле Test.txt задан некоторый текст. 1. Подсчитать отдельно количество гласных и...

Проверить чередование гласных и согласных букв в словах строки
«Вывести те слова данной строки, которые отличны от последнего слова и при этом выполняется условие...

Подсчитать количество слов, являющихся регулярными цепочками и в которых имеется чередование гласных и согласных букв
На языке Си ЗАДАНИЕ: Дана последовательность слов, которую необходимо преобразовать или...

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

2
7787 / 6555 / 2983
Регистрация: 14.04.2014
Сообщений: 28,633
26.10.2017, 15:01 2
Обнуление q внеси в цикл. При проверке чередования надо флаг использовать и вывод только после цикла.
1
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
26.10.2017, 17:49 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
42
43
44
45
46
47
48
49
50
#include <iostream>
#include <cstring>
 
bool is_altsym(const char* s){
    const char* i, *p = s;
    while(*p)
        ++p;
    
    if(((p - s) % 2) == 0)
        return false;
 
    //проверить на симметрию
    --p;
    i = s;
    while((i < p) && (*i == *p)){
        ++i;
        --p;
    }
 
    if(i != p)
        return false;
 
    //проверить на чередование
    const char vs[] = "AaEeOoIiYyUu";
    bool g2, g1 = (strchr(vs, *s) == NULL);
    for(++s; *s; ++s){
        g2 = (strchr(vs, *s) == NULL);
        if(!(g1 ^ g2))
            return false;
        g1 = g2;
    }
    return true;
}
 
int main(void){
    char s[128];
    std::cout << "Enter: ";
    std::cin.getline(s, sizeof(s));
    std::cin.sync();
 
    const char delim[] = " \t,.!?";
    char* w = strtok(s, delim);
    while(w != NULL){
        if(is_altsym(w))
            std::cout << w << ' ';
        w = strtok(NULL, delim);
    }
    std::cin.get();
    return 0;
}
1
26.10.2017, 17:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.10.2017, 17:49
Помогаю со студенческими работами здесь

Чередование гласных и согласных в String
Строка состоит только из букв. Переставить их так, чтобы гласные и согласные чередовались....

Найти количество гласных и согласных букв в строке, а также символов (, . : ? !
Задана строка S, содержащая русскоязычный текст, записанный малыми буквами. Найти количество...

Функция, возвращающая количество гласных и согласных букв в строке символов
Напишите функцию,которая возвращает количество гласных в строке символов и количество согласных. ...

Определить, каких букв в последовательности символов больше: гласных или согласных
Помогите написать программу: Вводится последовательность латинских символов. Признак конца ввода...

В потоке символов сосчитать число слов, в которых согласных букв меньше чем гласных
Помогите, пожалуйста! нужен код на си. Задание :В потоке символов сосчитать число слов, в которых...

Дана строка символов. Определить, каких букв – гласных или согласных – больше в этой строке.
Дана строка символов. Определить, каких букв – гласных или согласных – больше в этой строке. ...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru