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

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

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

Обработка файлов на диске - C++

13.10.2011, 16:02. Просмотров 436. Ответов 6
Метки нет (Все метки)

Помогите пожалуйста.
Дан файл, в отдельных строках которого прописаны комбинации цифр. Всего комбинаций 7. Строк больше, т.е. некоторые комбинации повторяются.
Требуется определить самую "популярную" из них.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Dani
1272 / 630 / 54
Регистрация: 11.08.2011
Сообщений: 2,266
Записей в блоге: 2
Завершенные тесты: 1
13.10.2011, 16:44     Обработка файлов на диске #2
используйте map<string,int>, и увеличивайте соответствующее значение. Затем с итератором найдите максимальное значение и выводите его на экран.
Wolfgang
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 3
13.10.2011, 20:47  [ТС]     Обработка файлов на диске #3
Увы, но ассоциативный массив и итераторы мы не изучали. Программу требуется написать более простым способом.
Dani
1272 / 630 / 54
Регистрация: 11.08.2011
Сообщений: 2,266
Записей в блоге: 2
Завершенные тесты: 1
13.10.2011, 20:51     Обработка файлов на диске #4
тогда можно (хотя не надо бы но...) организовать вектор, в котором значения были - структуры. Структура имела вид: ключ, значение. В ключе - строка (комбинация) в значении по умолчанию 1. Считываем комбинацию, провегаемся по вектору - если комбинация уже имеется, увеличиваем значение, иначе добавляем новую комбинацию. Ну уж если не проходили и классы, то можно (хотя не слыдовало бы) взять еще один вектор и в нем хранить значения, а в первом - ключи.
Wolfgang
0 / 0 / 0
Регистрация: 13.10.2011
Сообщений: 3
13.10.2011, 21:10  [ТС]     Обработка файлов на диске #5
Еще лучше. Не проходили векторы и классы.
Mayonez
380 / 272 / 21
Регистрация: 26.12.2009
Сообщений: 875
13.10.2011, 21:43     Обработка файлов на диске #6
Wolfgang, дайте пример
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.10.2011, 22:12     Обработка файлов на диске
Еще ссылки по теме:

C++ обработка файлов
Обработка файлов C++
C++ Обработка файлов
C++ Обработка файлов
C++ Как посчитать сколько на указанном пользователем диске всего файлов и папок?

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

Или воспользуйтесь поиском по форуму:
kravam
быдлокодер
1690 / 877 / 44
Регистрация: 04.06.2008
Сообщений: 5,395
13.10.2011, 22:12     Обработка файлов на диске #7
Надо так делать, хоть проходили хоть нет, скажет учителю что прошёл самостоятельно и он поставит пятёрку с плюсом
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 <windows.h>
#include <fstream>
#include <vector>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
 
 
int  main(void) {
 SetConsoleCP (1251);
 SetConsoleOutputCP (1251);
 
 
 //ОТкрываем файл на чтение
 fstream f ("f.txt");
 
 //А это вектор чисел, загоним туда файл
 vector <int> vec;
 
 int i= 0;
 int temp;
 while (f>> temp)
  vec.push_back (temp);
 //Загнали
 
 
 //Скопируем этот вектор
 vector <int> ve(vec);
 //Удалим из второго вектора повторяющиеся элементы
 unique (ve.begin(), ve.end());
 
 //Теперь пробегаемя по ve циклом
 //Берём из него значения и подсчитываем их колиество в vec
 int max= 0;
 int temp_;
 
 
 for (int i= 0; i< ve.size(); i++) {
  if ((temp_= count (vec.begin(), vec.end(), ve[i]))> max) {
   temp= ve[i];
   max= temp_;
  }
 }
  
 //Всё, больше всех повторяется число temp, а именно:
 printf  ("число %d повторяется %d раз\n", temp, max);       
 
  
 getchar ();
 return 0;
}
Добавлено через 1 минуту
А файл пусть такой: (форматирую наугад)
12
23
23
34
45
45
45
56
56
34
34
45
56
67
67
56
45
34
45
23
34
23
23
44
12
23
23
12
23
34
23
34
23
12
23
34


Добавлено через 38 секунд
Всё не получилось файл с данными, я не виноват!

Добавлено через 3 минуты
Да, надо не забыть файл-то закрыть в конце
C++
1
f.close ();
Yandex
Объявления
13.10.2011, 22:12     Обработка файлов на диске
Ответ Создать тему
Опции темы

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