|
|
|
| есть текстовый файл в котором в каждой строке какоето значение
к примеру
1
3
5
1
2
5
3
2
как посчитать количество едениц троек петерок двоек и так далее
за ранее спасибо | |
|
|
|
|
|
|
|
для: XPyCT
(25.09.2007 в 14:52)
| | Использование STL допускается?
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
using namespace std;
int main()
{
const int LENGTH = 80;
vector<int> coll;
vector<int>::iterator pos;
const char *filename = "filename.txt";
char input[LENGTH];
string str;
FILE *fp;
try
{
// Читаем содержимое файла в коллекцию
fp = fopen(filename, "r");
while(!feof(fp))
{
// Читаем строку из файла-источника
fgets(input, LENGTH, fp);
str = input;
coll.push_back(atoi(str.c_str()));
}
fclose(fp);
// Сортируем
sort(coll.begin(), coll.end());
// Обходим коллекуцию
// Перезаписываем файл новыми значениями
pos = coll.begin();
int current = *pos;
int number = 0;
for(pos = coll.begin(); pos != coll.end(); ++pos)
{
if(current == *pos) number++;
else
{
cout << current << " = " << number << " раз\r\n";
number = 1;
current = *pos;
}
}
cout << current << " = " << number << " раз\r\n";
}
catch(bad_alloc)
{
cout << "Не удалось выделить память под коллекцию\n";
}
return 0;
}
|
| |
|
|
|
|
|
|
|
для: cheops
(25.09.2007 в 17:02)
| | большое спасибо | |
|
|
|