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

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

Войти
Регистрация
Восстановить пароль
 
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
#1

Найти слово где наименьшее количество гласных - C++

30.06.2011, 20:28. Просмотров 759. Ответов 12
Метки нет (Все метки)

Здравствуйте уважаемые формучане, вот дали такое задание :
1. скопировать из файла в файл строки где больше двух слов
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <stdio.h>
int main()
{
    clrscr();
    FILE* f;
 
    char s[100][100];
    char str[100];
    char temp[100];
    int n=0;
    int k,kk;
    int l;
    int i, j;
    f= fopen("IN.TXT", "r");
 
 
    while (fgets(str, 100, f)!= NULL)
    {
        strcpy(s[n++], str);
 
    }
    fclose(f);
    f= fopen("OUT.TXT", "w");
    k=1;kk=0;
 
    fprintf(f, "Ryadki de bilshe 2 sliv:\n");
    for (i=0; i<n; i++)
    {
        for (j=0; j<strlen(s[i]); j++)
        {
            if (s[i][j]==' ')
            {
                kk++;
            }
 
        }
        if (kk>1)
            {
                fprintf(f, "%s", s[i]);
 
            }
                kk=0;
 
    }
 
 
    fclose(f);
    return 0;
}
Проверку больше ли двух слов в строке реализовал так: если есть больше одного пробела в строке значит тут больше двух слов (может немного не корректно)

а вот со вторым даже не знаю как начать. Нужно сначала как-то определить все слова а потом проверку. Но я не могу понять как это все сделать.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2011, 20:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти слово где наименьшее количество гласных (C++):

В предложении найти слово, в котором количество гласных максимально - C++
Всем привет! У меня одна небольшая проблема - я не затрудняюсь в написании алгоритма задач, но нам не объясняют строки в С++ и я просто...

Найти в тексте слово, содержащее наибольшее количество гласных - C++
выкладываю код. задача проги-найти в тексте слово, содержащее наибольшее количество гласных, и вывести предложение, его содержащее. код я...

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

Найдите самое длинное слово в тексте и подсчитайте количество гласных букв в нем - C++
Найдите самое длинное слово в тексте и подсчитайте количество гласных букв в нем.

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

Найти слово с наибольшим количеством гласных букв - C++
Гляньте что не так: #include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; using namespace std; void main(){ char...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
30.06.2011, 20:36 #2
Mischanja, это всё хреново...
char s[100][100]; - это вообще жесть.
C
1
2
3
4
5
6
        while (fgets(str, 100, f)!= NULL)
        {
                if (fun(str)) // фукнция возвращает больше 2-х слов или нет в предожении
                fputs(f2,str);
 
        }
всё 1-ое задание есть.

Цитата Сообщение от Mischanja Посмотреть сообщение
2. Определить номер слова в котором наименьшее количество гласных
в 1-м предложении?

гугли strtok()
http://www.cplusplus.com/reference/c...string/strtok/
разбил на слова.

дальше по буквам проверяешь, гласная ли , если да то счетчик++
ну всё банально короче.
0
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 17:47  [ТС] #3
и откуда мне взять функцию fun что вы описали
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
01.07.2011, 19:42 #4
написать ))
C
1
2
3
4
5
int fun(char* str) {
int n=0;
... // здесь считаем количество пробелов, n++ ( самый примитивный вариант)
return n>1;
}
0
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 19:44  [ТС] #5
ну по моему я так же сделал подсчитав количество пробелов. не вижу разници
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
01.07.2011, 19:54 #6
разница в размере кода и подходе
0
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 19:56  [ТС] #7
Цитата Сообщение от OstapBender Посмотреть сообщение
разница в размере кода и подходе
ну да. согласен. Остап, помоги с нахождением слова в котором наименьшее количество гласных. у меня не выходит
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
01.07.2011, 20:07 #8
Mischanja, ну ладно
как-то так:
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
int numVow(char* str) {
 
    char vow[]="euioa";
    int cnt=0;
 
    for (unsigned int i=0; i<strlen(str); i++)
        if (strchr(vow,str[i])) cnt++;
 
    return cnt;
}
 
 
 
int main() 
{
    char sent[]="wrgerge ergeargergerg tbtyn 6j6 g rktjbiorbn vrvyhergv erhf4rtv tb5b5b";
 
    char *p;
 
    char *pmax;
    int cntmax=0;
 
    p = strtok(sent," \t\n");
 
    while (p) {
 
        if (numVow(p)>cntmax) {
            cntmax=numVow(p);
            pmax=p;
        }
 
    p = strtok(NULL," \t\n");
 
    }
 
    printf("%s\n-> %d",pmax,cntmax);
 
 
    getchar();
    return 0;
}
1
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 20:36  [ТС] #9
спасибо теперь осталось только прикрутить к файлу, только выводит слово где максимальное количество гласных

Добавлено через 15 минут
хотя по коду должно б выводить минимальное
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
01.07.2011, 20:43 #10
Цитата Сообщение от Mischanja Посмотреть сообщение
осталось только прикрутить к файлу
давай.

Цитата Сообщение от Mischanja Посмотреть сообщение
хотя по коду должно б выводить минимальное
ну это уж прости, 1 строчку поменять думаю сможешь.
0
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 20:58  [ТС] #11
да проблема в том что когда меняю то выдает:
nulled
->0
то есть пустое место
0
OstapBender
583 / 521 / 35
Регистрация: 22.03.2011
Сообщений: 1,585
01.07.2011, 21:12 #12
C
1
2
3
4
        int cntmax=0xFF; // 255 ... cntmin...
...
        if (numVow(p)<cntmax) { ...
или     if (numVow(p)<cntmax && numVow(p)>=1) { ...
Пс: забыл 'y' в гласные
1
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493
01.07.2011, 21:18  [ТС] #13
да спс.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.07.2011, 21:18
Привет! Вот еще темы с ответами:

Найти слово, в котором доля гласных (a, e, i, o, u, y) максимальна - C++
Доброго времени суток! Собственно начну с задания: Разработать программу, определяющую во введенном тексте на английском языке слово, в...

Найти в строке наименьшее слово - C++
дано string a(&quot;masha ila kashu&quot;); найти в строке наименьшее слово

Найти количество гласных в строке - C++
Найти количество гласных в строке: «Человек в двадцать первом веке, который не будет уметь пользоваться ЭВМ, будет подобен человеку...

Найти количество гласных и согласных букв - C++
Помогите плиз!Надо найти кол-во гласных и согласных букв.Вот что-то понять не могу где ошибка.Ни фига не считает. #include &lt;stdio.h&gt; ...


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

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

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