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

Поиск анаграмм - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ помогите определить баг или недочёт в программе. http://www.cyberforum.ru/cpp-beginners/thread366958.html
Задача ввести с клавиатуры массив и вывести на экран наибольший его элемент. Проблема заключается в if когда s<mas он всё время перескакивает на else вместо s=mas. #include <stdio.h> #include <conio.h> #define n 100 void main() { int i,j;
C++ Динамическое выделение памяти Подскажите как выделить динамически память мод двумерный массив... Спасибо. ... int *mass = new int ; //int *mass = new int ; ) Не работает... ... http://www.cyberforum.ru/cpp-beginners/thread366957.html
unistd.h C++
как добавить unistd.h в биб Visual studio ??? закидываю в папку с проектом читается не правильно (((
C++ Целочисленная арифметика
Добрый вечер. Пропустил практику по информатике, не понимаю по какому принципу решать задачу. Собственно вот: тема - целочисленная арифметика. Задание: дано вещественное число ABCDEF.GHIKLM, в котором буквы это любые цифры (0..9) Нужно переставить группу цифр XX между цифрами Y, Z. У меня F G между L, M. Тоесть ИЗ ABCDEF.GHIKLM нужно получить ABCDE.HIKLFGM
C++ error LNK2019: ссылка на неразрешенный внешний символ Что это? http://www.cyberforum.ru/cpp-beginners/thread366911.html
Всем доброго вечера что это такое за непонятная ошибка? error LNK2019: ссылка на неразрешенный внешний символ и Ошибка 2 fatal error LNK1120: 1 неразрешенных внешних элементов #include<iostream> using namespace std; int main() { int n=1, m=5, v, x; cout << "Vvedite v" << endl;
C++ Запуск/Создание Windows Form в Win32 приложение ! Здравствуйте! Использую Visual Studio 2010. Учусь делать приложение игру на директх. Вопрос такой как запустить Форму видоус формс в вин32 приложении? Где его создать ? Как добавить в проект? Как запустить? #include <windows.h> #include <stdlib.h> #include <string.h> #include <tchar.h> #include "ddfunc.h" подробнее

Показать сообщение отдельно
slavik
0 / 0 / 0
Регистрация: 11.09.2011
Сообщений: 15
16.10.2011, 02:01     Поиск анаграмм
Доброй ночи!
Такая задачка... Возможно многим знакома по Золотому байту. Я в самом начале изучения С++ и до конца не могу разобраться.
Есть файл "in.txt" с каким-либо списком слов (до 10000). Одна строка - одно слово.
Нужно найти все анаграммы и вывести их в файл "out.txt".
Например во входном файле:
kot
polet
tok
leto
teplo
kto
zima

Тогда на выходе:
kot
tok
kto
polet
teplo

Примерно так...
Во время первого считывания файла я определяю кол-во строк. Затем создаю массив строк.
Далее сортирую буквы в словах.
Это сделал. Вроде и дальше понимаю путь (с помощью strcmp ищем дубликаты). Но на деле не получается. Не пойму , как обратно отсортировать. Или какой другой алгоритм нужен. И как в файл записать... Классы не использовать.
Посмотрите код и помогите пожалуйста.
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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include<iostream>
#include <cstdlib>
#include<stdio.h>
#include <iomanip>
#include<cctype>
#include<cstring>
using namespace std;
void BubbleSort1(char[],int);
int main()
{
    setlocale(LC_ALL,"rus");
    FILE *file;
    char str[255];
    int N,M=0;
    if((file=fopen("in.txt", "r"))!=NULL)
    {
    do
        {
            fgets(str,255,file);
            M++;
        } while(!feof(file));
        fclose(file);
    }
    else
    {
        cout<<"File not found"<<endl;
    }
    char **mas = new char*[M];
    for(int i=0;i<M;i++)
    {
        mas[i]=new char[255];
    }
    if((file=fopen("in.txt", "r"))!=NULL)
    {
        for(int i=0;i<M;i++)
        {
            fgets(mas[i],255,file);
        }
        fclose(file);
    }
    else
    {
        cout<<"Error";
    }
    for(int i=0;i<M;i++)
    {
        cout<<mas[i];
    }
    cout<<"\n\n";
    for(int i=0;i<M;i++)
    {
        N=strlen(mas[i]);
        BubbleSort1(mas[i],N);
    }
    for(int i=0; i<M-1; i++)
    {
        cout<<mas[i];
    }
    cout<<"\n\n";
    for(int i=0;i<M;i++)
    {
        char*y=mas[i];
        for(int j=i+1;j<M;j++)
        {
            if(strcmp(y,mas[j])==0)
            {
                cout<<y;
            }
        }
    }
    cout<<endl;
    system("pause");
    return 0;
}
void BubbleSort1(char*mas,int M)
{
    bool sort=true;
    while(sort)
    {
        sort=false;
        for(int i=0;i<M-1;i++)
        {
            if(mas[i]>mas[i+1])
            {
                int x=mas[i];
                mas[i]=mas[i+1];
                mas[i+1]=x;
                sort=true;
            }
        }
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 23:28. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru