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

Найти все пары слов с наибольшим расстоянием. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Создайте текстовый файл, содержащий сведения о клиентах фирмы http://www.cyberforum.ru/cpp-beginners/thread357743.html
Создайте текстовый файл, содержащий сведения о клиентах фирмы: наименование организации, дата основания, количество договоров на приобретение товаров, общая стоимость договоров. Напишите...
C++ Строки и функции Написать функцию удаления всех символов "*", и повторить каждый символ отличный от "*". Вариант задания реализовать в виде функции. Если функция возвращает строку или объект, то это необходимо... http://www.cyberforum.ru/cpp-beginners/thread357739.html
C++ графика в си++, рисование
Помогите подалуйста контур лица нарисовать((( никак не получается....все как то не ровно
написать программу, которая вводит и суммирует любое количество целочисленных значений C++
как написать программу, которая вводит и суммирует любое количество целочисленных значений. Если введено число 999, то на экран выводится результат суммирования
C++ Атд список. Удалить одинаковые элементы. http://www.cyberforum.ru/cpp-beginners/thread357736.html
Здравствуйте!!!!! Вот еще одна проблемка, расчитываю на Вашу помощь! Суть такова! Есть АТД список, в нем нужно оставить только те элементы которые входят в него один раз! Пример.
C++ Разработка и отладка алгоритмов и программ с применением пользовательских функций подскажите пожалуйста как реализовать задачи(код программы на языке С):scratch: 1)Описать функцию вещественного типа(параметры – x, ε), находящую приближенное значение функции exp(x)=1+x+x2 /(2!)+... подробнее

Показать сообщение отдельно
xAtom
915 / 740 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.09.2011, 16:55
Дария_, на скорую руку накидал, попробуй как вариант а не решение данной задачи.
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
#include <fstream>
#include <iostream>
#include <set>
#include <string>
using namespace std;
#define SEPARATE  "\n\t,.:;!? +-/*\\\"'[](){}()\r "
 
struct scmp { 
    bool operator () (string s1, string s2) const{
        return s1.compare(s2) < 0;
   }
};
void tokenize(set<string, scmp>* coll, string str);
int  max_ch(const char* str1, const char* str2);
 
int  main(void) {
  set<string, scmp> swords;
  fstream  fp("D:\\words.txt", ios_base::in);
 
  if(! fp.is_open())
        exit(1);
 
  string str;
  while(! fp.eof()) {
       getline(fp, str, '\n');
       tokenize(&swords, str);
  }
  fp.close();
 
  // обработка с поиском схожести слов на символы
  int tmp, num;
  set<string, scmp>::iterator ptr, pos, oiter;
  set<string, scmp>::iterator iter = swords.begin();
  while(iter != swords.end()) {
       pos  = iter;
       oiter = iter;
       for(tmp = 0, ptr = ++iter; ptr != swords.end(); *ptr++) {
               num = max_ch(pos->c_str(), ptr->c_str());
               if(num > tmp) {
                  tmp = num;
                  oiter = ptr;
              }
       }
        if(tmp) { 
              cout.width(32);
              cout << pos->c_str() << "\t-" << tmp << "-\t" << oiter->c_str() << endl;
              *oiter = "";
              *pos   = "";
        }
  }
  swords.clear();
  system("pause");
  return 0;
}
 
// функция по разбивки строки на слова
void tokenize(set<string, scmp>* coll, string str) {
    string  sb;
    size_t  i = 0u;
    do {
          if(isalnum(str[i]) && i != str.length()) 
                 sb += str[i];
          else {
                if(sb.length() > 0u) 
                      coll->insert(sb);
                sb = "";
          }
     } while(++i <= str.length());
}
 
// подсчёт символов идентичности между словами
int  max_ch(const char* str1, const char* str2) {
  const char* str;
  int  len;
  for(len = 0; *str1; *str1++) {
          for(str = str2; *str; *str++) {
                if( *str == *str1 ) {
                       len++;
                       break;
                 }
           }
  }
  return len;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru