Дан файл целых чисел с диапазоном значений от a до b. Определите, сколько раз встречается...

0 голосов
132 просмотров

Дан файл целых чисел с диапазоном значений от a до b. Определите, сколько раз встречается каждое значение в файле.
Язык С++.


Информатика (1.8k баллов) | 132 просмотров
0

"с диапазоном значений от a до b", - это в файле всего два значения a и b или что цифры к примеру от 0 до 100, но к чему тогда это информация?)

0

55 13 51 55 55 21 38 59 62 20 62 10 9 55 28 60 28 24 95 7

0

такой файл подойдёт?

0

Подразумевается, что сначала нужно заполнить файл числами из диапазона [a, b], подойдут любые числа, можно даже рандомом)

0

ааа, ну я так и думал)) но нужно так и писать))

Дано ответов: 2
0 голосов
Правильный ответ

//Microsoft (R) C/C++ Optimizing Compiler Version 19.00.23506 for x64

#include
#include
#include
#include
#include


#include
using namespace std;

mt19937 gen { random_device()() };
uniform_int_distribution<> uid(0, 100); //диапазон от 0..100

int main()
{   
    fstream f("F2.txt");
    int a, b;
    cin >> a >> b;
    for (size_t i = a; i < b; ++i) {
        f << uid(gen) << " ";<br>    }
    vector v;
    map m;
    int temp;
    while ( !f.eof() ) {
        f >> temp;
        v.push_back(temp);
    }
    for (auto it = v.begin(); it != v.end(); ++it) {
        m[*it]++;
    }
    for (const auto &i : m) {
        cout << i.first << " = " << i.second << endl;<br>    }
}
___________________
Пример:
55 13 51 55 55 21 38 59 62 20 62 10 9 55 28 60 28 24 95 7
7 = 1
9 = 1
10 = 1
13 = 1
20 = 1
21 = 1
24 = 1
28 = 2
38 = 1
51 = 1
55 = 4
59 = 1
60 = 1
62 = 2
95 = 1

(4.2k баллов)
0

Спасибо)

0 голосов

Замечание: обработка возможных ошибок исходных данных отсутствует.
#include
#include
using namespace std;

int main()
{
    ifstream in;
    ofstream out;
    int a = 5, b = 15, c;
    int k[b-a+1];
    for (int i=0; i    in.open("f.txt");
    while(in >> c)
     {
     k[c-a]++;
     }
    for (int i=0; i cout << i+a << " - " << k[i] << '\n';<br>    in.close();
    return 0;
}

Пример:
Содержимое файла f.txt:
7 10 15
8 7 7 10

Результат:
5 - 0
6 - 0
7 - 3
8 - 1
9 - 0
10 - 2
11 - 0
12 - 0
13 - 0
14 - 0
15 - 1

(194k баллов)
0

Спасибо ;)