Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Kings_ton
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 44
Завершенные тесты: 1
#1

Вывести из текста слова с четным количеством гласных букв - C++

01.11.2013, 12:13. Просмотров 401. Ответов 4
Метки нет (Все метки)

Вот код при компилировании выдает все правильно, но когда ввожу допустим tt ttt tttt, эти слова тоже выводятся на экран, а не должны. Задание такое вывести из текста слова с четным количеством гласных букв.
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
# include <iostream>
# include <string.h>
# include <conio.h>
using namespace std;
int main ()
{
    char glas [6]="aeiou";
    char newcharmas[256]="\0";
    int k=0,mk=0;
    char predl[256];
    cout<<"Vvedite tekst:";
    cin.getline(predl,256);
    cout<<endl<<"Vi vveli:"<<predl<<endl;
    char * pch=strtok(predl," ");
    while(pch!=NULL)
    {
        k=0;
        for(int i=0;i<=strlen(pch);i++)
        {
            if (pch[i]=='a' || pch[i]=='e' || pch[i]=='i' || pch[i]=='o' || pch[i]=='u')
            {
                k++;
            }
        }
        if (k%2==0)
        {
        strcat(newcharmas,pch);
        strcat(newcharmas," ");
        }
        pch=strtok(NULL," ");
    }
    cout<<endl<<"V dannom predlozhenii:"<<mk<<" words with chetnimi glasnimi bukvami."<<'\n';
    cout<<"Sozdan noviy massiv:"<<newcharmas<<'\n';
    _getch()
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.11.2013, 12:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести из текста слова с четным количеством гласных букв (C++):

Вывести на экран слова текста, начинающиеся с гласных букв - C++
написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся с гласных букв и...

Вывести те слова из текста на экран, которые отсортированы по количеству гласных букв - C++
Дали написать программу &quot;В файле есть текст, вывести слова из текста на экран, которые отсортированы по количеству гласных букв&quot; Работаю в...

Работа со строками: выводит все слова, с четным количеством букв - C++
Требуется помощь в написании следующей программы: С клавиатуры вводится текстовая строка. Составить программу, которая: ...

Вывод слова с наибольшим количеством гласных букв - C++
записывается 10 слов и потом выводится одно слово с большим количеством гласных букв

Найти слова с наибольшим количеством гласных букв - C++
Вводится строка слов, написанных латинскими буквами. Необходимо вывести слова(-о), в которых содержится наибольшее кол-во гласных букв( e y...

Удалить из файла f1 слова с четным количеством букв, остальное записать в файл f2 - C++
Добрый день. Нужно удалить слова из файла f1 с четным количеством букв, остальное записать в файл f2 Ошибка в коде, почему то не...

4
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
01.11.2013, 12:21 #2
При k = 0, k % 2 == true.

И да, оформляйте код в тегах [CPP]

Добавлено через 1 минуту
И, да, 'y' по-моему тоже гласная, разве нет?
0
zitxbit
88 / 740 / 75
Регистрация: 11.04.2012
Сообщений: 971
01.11.2013, 12:25 #3
C++
1
2
3
4
5
if (k%2==0 && k != 0)
{
strcat(newcharmas,pch);
strcat(newcharmas," ");
}
Мой вариант:
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
 
int main(int argc, char* argv[])
{
    char str[256] = "tt ttt tttt\0";
 
    char* pch = strtok(str," ");
    while (pch != NULL)
    {
        int count = 0;
        char pchars[] = "aeiouy";
        for (int i = 0; pch[i] != '\0'; i++)
            if (strchr(pchars, pch[i])) count++;
 
        if ((count % 2) == 0 && count != 0) 
            printf("%s\n",pch);
 
        pch = strtok(NULL," ");
    }
 
    _getch();
 
    return 0;
}
1
ValeryS
Модератор
6652 / 5061 / 470
Регистрация: 14.02.2011
Сообщений: 16,923
01.11.2013, 12:26 #4
Цитата Сообщение от Kings_ton Посмотреть сообщение
но когда ввожу допустим tt ttt tttt, эти слова тоже выводятся на экран, а не должны. Задание такое вывести из текста слова с четным количеством гласных букв.
ты не поверишь но 0 тоже четное
исправь условие
C++
1
if (k!=0 && k%2==0)
0
Kings_ton
0 / 0 / 0
Регистрация: 19.10.2013
Сообщений: 44
Завершенные тесты: 1
01.11.2013, 12:32  [ТС] #5
Исправил, все равно выдает вот эти ttt ttt ttt)
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2013, 12:32
Привет! Вот еще темы с ответами:

Найти в тексте все слова с наибольшим количеством гласных букв русского алфавита - C++
Дан текст. Найти в нем все слова с наибольшим количеством гласных букв русского алфавита. Кто может помочь с решением этой задачи?

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

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

Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы - C++
Здравствуйте. Помогите, пожалуйста сделать программу... Задание: Составить программу, которая выводит на экран слова с наименьшим...


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

Или воспользуйтесь поиском по форуму:
5
Yandex
Объявления
01.11.2013, 12:32
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru