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

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

Войти
Регистрация
Восстановить пароль
 
grasp
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 4
#1

Сортировка строк из файла по количеству гласных букв - C++

16.12.2012, 10:50. Просмотров 894. Ответов 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
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include <conio.h>
#include <Windows.h>
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char strings[10][32], str[32];
    FILE *f;
    int count = 0, i, j;
    if((f = fopen ("name1.txt", "r")) == NULL)
    {
        return 1;
    }
    /* Считываем слова из файла */
    while (feof(f) == 0 || count > 10)
    {
        fscanf (f, "%s", str);
        strcpy(strings[count++], str);
    }
    fclose(f);
    /* Выводим считаные строки */
    for(i = 0; i < count; i++)
        printf("%s\n", strings[i]);
    putchar('\n');
    /* Сортировка методом пузырька */
 
 
    return 0;
}
Убедительная просьба! Изменять программу по минимуму, т.к. эта прога только часть одной большой, с меню, функциями и другими программами. За помощь буду очень благодарен))
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.12.2012, 10:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Сортировка строк из файла по количеству гласных букв (C++):

Отсортировать слова по количеству гласных букв - C++
Помогите написать программу для Visual C++. Сам не очень разбираюсь, желательно чтобы было понятно. Сама программа &quot;Есть файл, в файле...

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

Сортировка слов по количеству в них букв - C++
Доброго времени суток. Нужно решить три задачки. Я с С++ сталкиваюсь только сейчас. 3)Используя STL написать программу для сортировки...

Сортировка строк в файле по количеству чисел в строке - C++
Здравствуйте. Подскажите пожалуйста. Есть файл, в котором записаны строки с числами. Например вот так: 12 22 34 15 4 1223 334 0 1 2 0 ...

Определить количество гласных букв в первой строке файла F2 - C++
Скопировать из файла F1 в файл F2 все строки, в которых нет одинаковых слов. Определить количество гласных букв в первой строке файла F2.

STL: Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза - C++
Помогите написать программу!! Сортировка слов по количеству согласных букв; вывод слов, встречающихся в списке более одного раза. ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Schizorb
509 / 461 / 16
Регистрация: 07.04.2012
Сообщений: 865
Записей в блоге: 1
Завершенные тесты: 1
16.12.2012, 11:55 #2
Ну, если совсем минимум изменений, то так можно. А вообще лучше динамический память выделять, чтобы просто указатели менять, а не копировать строки с помощью strcpy.

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
55
56
57
58
59
60
61
62
63
#include <string.h>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
 
 
int count_vowels(char * word)
{
    int count = 0; 
    char vowels[] = "AEIOUYaeiouy";
    
    for(char * p2 = word; *p2; ++p2)
        for(char * p1 = vowels; *p1; ++p1)
            if(*p1 == *p2)
                ++count; 
 
    return count;
}
 
 
int main(void)
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
 
    char strings[10][32], str[32];
    FILE *f;
    int count = 0, i, j;
    if((f = fopen ("name1.txt", "r")) == NULL)
    {
        return 1;
    }
    /* Считываем слова из файла */
    while (feof(f) == 0 || count > 10)
    {    
        fscanf (f, "%s", str);
        strcpy(strings[count++], str);
    }
    fclose(f);
    
     /* Сортировка методом пузырька */
    for(i = 0; i < count - 1; ++i)
    {
        for(j = 0; j < count - 1 - i; ++j)    
        {
            if(count_vowels(strings[j + 1]) > count_vowels(strings[j]))
            {
                strcpy(str, strings[j]);
                strcpy(strings[j], strings[j + 1]);
                strcpy(strings[j + 1], str);
            }
        }
    }
    
    /* Выводим считаные строки */
    for(i = 0; i < count; i++)
    {
        printf("%s\n", strings[i]);
    }
    putchar('\n');
 
    return 0;
}
1
grasp
0 / 0 / 0
Регистрация: 16.12.2012
Сообщений: 4
16.12.2012, 12:58  [ТС] #3
Schizorb, спасибо тебе огромное)) От души))
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2012, 12:58
Привет! Вот еще темы с ответами:

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

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

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

Сделать что-бы строка бралась с файла (определить отношение количества гласных букв в предложении к согласным) - C++
Задание: Определить отношение количества гласных букв в предложении к согласным. код:#include &lt;iostream&gt; #include &lt;conio.h&gt; ...


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

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

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