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

Получить 10 наиболее часто встречающихся слов из файла - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Подпрограмма (функция) http://www.cyberforum.ru/cpp-beginners/thread800545.html
Здравствуйте,подскажите в чем проблема понять не могу,прога с виду примитивная и простая ,но значения не верные выдает. Задание звучит так: Даны по 3 стороны для трех треугольников. Найти медианы всех сторон. Высчитываются по формуле (sqrt(2*x^2+2*y^2-z^2))/2, где x y z стороны. #include <iostream> #include <cmath> using namespace std; float function(int x,int y,int z) {return...
C++ Деление на натуральное число Доброго времени суток! У меня, наверное, глупая проблема, но все таки хочется разобраться. Вот программа, где мне нужно найти число, взаимно обратное N. Но после компиляции С всегда равно 0, кроме того случая, когда N=1. когда вместо '/' ставлю '+' или '-' все работает.Подскажите пожалуйста в чем дело. Пишу на Bloodshed Dev-C++ 4.9.9.2 #include <iostream> using namespace std; int main() { ... http://www.cyberforum.ru/cpp-beginners/thread800544.html
C++ Вычисление одного из углов треугольника, когда заданы значения двух других углов
Написать программу вычисления одного из углов треугольника, когда заданы значения двух других углов. Рекомендуемый вид экрана во время ра-боты. >Введите исходные данные: >Угол А (град) > >Угол В (град) > >Угол С ….. (град)
Файлы. Получить названия, состоящие из двойных слов C++
В текстовом файле хранятся названия городов через запятую. Получить названия, состоящие из двойных слов, например, Нью-Йорк, Новый Орлеан, результат отсортировать в алфавитном порядке. Прошу помочь ....
C++ После каждого вхождения символа С в строку S вставить строку S0 http://www.cyberforum.ru/cpp-beginners/thread800497.html
1)Простые действия со строками. Дан символ С и строки S, S0. После каждого вхождения символа С в строку S вставить строку S0. Помогите пожалуйста.
C++ Ассемблерная вставка в с++ С помощью логических операций реализуйте запись битов в данной ячейки памяти, размером в 2 байта, в обратном порядке. Вот моя, отдаленная, ни на что похожая попытка((( #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { int flag1,flag2; printf("Введите строку %b",flag1); подробнее

Показать сообщение отдельно
anmartex
...
 Аватар для anmartex
1699 / 1192 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
05.03.2013, 06:50     Получить 10 наиболее часто встречающихся слов из файла
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
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <string>
#include <map>
#include <list>
#include <cstdlib>
 
using namespace std;
 
//----------------------------------------------//
void ReadFile(ifstream& f, map<string, int>& words)
{
   char ch = 0;
   string str;
 
   while (f.eof() == false)
   {
      ch = f.get();
      if (isalpha(ch))
      {
         str += tolower(ch);
      }
      else
      {
         if (str.empty() == false)
         {
            words[str]++;
         }
         str.clear();
      }
   }
}
//----------------------------------------------//
bool WordsComparer(const std::pair<string, int>& a,
                   const std::pair<string, int>& b)
{
   return (a.second < b.second);
}
//----------------------------------------------//
void MoveTop10(map<string, int>& words, list< pair<string, int> >& top)
{
   for (unsigned i = 0; i < 10; ++i)
   {
      map<string, int>::iterator it = std::max_element(words.begin(), words.end(), WordsComparer);
 
      if (it == words.end())
      {
         return;
      }
 
      top.push_back(pair<string, int>(it->first, it->second));
      words.erase(it);
   }
}
//----------------------------------------------//
 
int main(int argc, const char* argv[])
{
   if (argc != 2)
   {
      cerr << "Usage: program <FILE.txt>" << endl;
      system("pause");
      return 1;
   }
 
   ifstream f(argv[1]);
 
   if (f.is_open() == false)
   {
      cerr << "Error: file " << argv[1] << " not opened ..." << endl;
      return 1;
   }
 
   map<string, int> words;
 
   ReadFile(f, words);
 
   list< pair<string, int> > top;
 
   MoveTop10(words, top);
 
   cout << "Top 10:" << endl;
   for (list< pair<string, int> >::iterator it = top.begin(); it != top.end(); ++it)
   {
      cout << setw(8) << it->second << "  " << it->first << endl;
   }
 
   return 0;
}
Название: image.PNG
Просмотров: 122

Размер: 4.3 Кб

Бинарник + исходник: program.7z
 
Текущее время: 03:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru