Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227

Как написать программу, которая читает список целых int in array и количество повторов по каждой цифре?

01.11.2012, 21:07. Показов 1023. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо написать программу, которая читает список целых int in array и количество повторов по каждой цифре.

- программа должна читать список из файла (никак не соображу как это делается);
- сортирует список от мин то мах;
- считает количество по каждой цифре;
- выдаёт результат как таблицу с 2 колонками: N(сортированный список) и Count(количество по каждой цифре).

Неполный код здесь:

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
#include <iostream>
#include <fstream>
 
using namespace std;
 
 
      void fill_array(ifstream& original, ofstream& updated); 
      void sortNumbers(int a[], int number_used);
      void swap_values(int&v1, int&v2);
      int next_smallest(const int a[], int start_index, int number_used);
      
int main( )
{
    cout << "This program sorts numbers from lowest to highest.\n";
    cout << "Homework 9: Solution to Project 5";
    
    
    
        
   ifstream inFile;
   ofstream outFile;
   
   inFile.open("hw9input.txt");
   outFile.open("hw9output.txt");
 
   
   
    int sample_array[30], number_used;
    fill_array(sample_array, 10, number_used);
    sort(sample_array, number_used);
    
    
    
    
    cout << "In sorted order the numbers are:\n";
    for (int index = 0; index < number_used; index++)
      cout << sample_array[index] << "  ";
      cout << endl;
    
 
    
    
    system("Pause");
    return 0;
}  
 
     void sortNumbers(int a[], int number_used)
     {
       int next_smallest;
       
       for(int index = 0; index < number_used - 1; index++)
               {
                     next_smallest = next_smallest(a, index, number_used);
                     swap_values(a[index], a[next_smallest]);
               }
            
      }
      
      
      void swap_values(int&v1, int&v2)
      {
        int temp;
        temp = v1;
        v1 = v2;
        v2 = temp;     
      }
      
      
      int next_smallest(const int a[], int start_index, int number_used)
      {
          int min = a[start_index],
              index_of_min = start_index;
              
          for (int index = start_index + 1; index < number_used; index++)
               if(a[index] > min)
               {
                           max = a[index];
                           index_of_max = index;
               }
               
               return index_of_min;        
      }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
01.11.2012, 21:07
Ответы с готовыми решениями:

Написать программу, которая читает первые три символа из каждой строки текстового файла
Написать программу, которая читает первые три символа из каждой строки текстового файла stroki.txt

Написать программу, которая создает файл целых чисел, а затем формирует список целых чисел файла
Написать программу, которая создает файл целых чисел, а затем формирует список целых чисел файла. Создать список чисел, являющихся суммой...

Написать программу , которая вводит и суммирует любое количество целых чисел
Всем привет ... Будьте добры , Практическая =) 2.Написать программу , которая вводит и суммирует любое количество целых чисел . При...

4
 Аватар для David Sylva
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
01.11.2012, 22:28
Вот такой вариант
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
#include <iostream> 
#include <algorithm>
#include <fstream> 
 
int main() 
{   
    int array[100]; 
    int a, j, i = 0; 
    int buffer[10] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 
    int arr[10] = { 0 };
    std::ifstream infile("Text.txt");  
    
    if(!infile.is_open()) 
        std::cout << "Error " << std::endl; 
    else 
        while(infile >> array[i++]); 
    std::cout << "Primary array " << std::endl;
    for ( int j = 0; j < i-1; j++) 
        std::cout << array[j] << " "; 
 
    std::cout << std::endl; 
    std::cout << "Sorted array " << std::endl; 
    std::sort(array, array + i - 1 ); 
    for ( j = 0; j < i - 1; j++) 
        std::cout << array[j] << " "; 
    std::cout << std::endl << std::endl;
 
    for ( j = 0; j < i; j++) 
        for (  a = 0; a < 10; a++) 
        {   
            if(array[j] == buffer[a])  
            {
                arr[a] = arr[a]+1;
                continue; 
            } 
        } 
 
        for ( j = 0; j < 10; j++) 
            std::cout << j << ") " << arr[j] << std::endl;
}
Добавлено через 29 секунд
текстовый файл 1 3 4 5 7 9 4 5 5 5 5 5 5 1 2 3 4 6 7 8 9 9 9 9 1 2 3 4 5 7 2
1
5 / 5 / 1
Регистрация: 09.09.2012
Сообщений: 227
02.11.2012, 06:57  [ТС]
Классно!!!

Просто и понятно.
Respect
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
02.11.2012, 09:47
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
#include <iostream>
#include <vector>
#include <fstream>
#include <algorithm>
#include <string>
#include <map>
#include <iterator>
 
int main()
{
   const char* f_name = "file.txt";
   std::ifstream ifs(f_name);
   if (!ifs)
   {
      return 1;
   }
   std::vector<int> vec{std::istream_iterator<int>(ifs), std::istream_iterator<int>()};
   std::map<int, int> counted;
   for (auto i : vec)
   {
      auto pos = counted.find(i);
      if (pos != counted.end())
      {
         ++pos->second;
      }
      else
      {
         counted.insert(std::make_pair(i, 1));
      }
   }
   for (const auto& p : counted)
   {
      std::cout << "Number: " << p.first << " repeats: " << p.second << std::endl;
   }
}
http://liveworkspace.org/code/... 012480ebc8
1
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
02.11.2012, 12:22
QWERY_2012, ниже моё видение проблемы
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
#include <vector>
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
 
bool bComp(pair<int, int> pLeft, 
           pair<int, int> pRight)//Булевая функция для std::sort
{
    return pLeft.first > pRight.first;
}
 
//Функция для поиска значения value среди first полей вектора pVec
//если значение value присутсвует в векторе то увеличиваем поле счётчик second
//иначе добавляем число в вектор 
bool bFind(int value, vector< pair<int, int> > &pVec)
{
    bool bFound = false;
    for(int iElem = 0; iElem < pVec.size() && !bFound; iElem++)
    {
        bFound = (pVec[iElem].first == value);
        if(bFound)
            pVec[iElem].second = pVec[iElem].second + 1;
    }
    return bFound;
}
 
int main()
{
    int value;//Буффер для числа из потока
    //Вектор пар число - колво поторений
    //другими словами нашатаблица
    vector< pair<int, int> > pVec;
    fstream fs("data.txt", ios::in);//Организуем поток чтения
    if(!fs.is_open())
        cerr<<"Error open data.txt"<<endl;
    else
    {
        while(fs>>value)
        {
            if(!bFind(value, pVec))
                pVec.push_back(make_pair(value, 1));
        }
        //Соритируем вектор причём не надо писать сложных алгоритмов
        sort(pVec.begin(), pVec.end());//за нас уже всё написали
        //Печатаем нашу таблицу на экране
        for(int iElem = 0; iElem < pVec.size(); iElem++)
            cout<<pVec[iElem].first<<"\t- "<<pVec[iElem].second<<endl;
    }
    return 0;
}
файл данных data.txt
1 3 25 5 16 9 -7 8 8 9 -7 9 -7 1 2 3 4 5 7 2 -3 -15 11 0 25 28 146 -253 15 -253
Миниатюры
Как написать программу, которая читает список целых int in array и количество повторов по каждой цифре?  
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2012, 12:22
Помогаю со студенческими работами здесь

Написать программу, которая к первой цифре натурального числа N, добавляет 2
Нужно написать программу, которая к первой цифре натурального числа N, добовляет 2. Пример 49-69, 128-328 Помогите люди добрые)

Написать программу, которая считывает текст из файла и определяет количество символов X в каждой строке C++
Помогите написать программу, буду очень благодарен:)

Написать программу, которая читает файл
Написать программу, которая читает файл для которого, задаётся с клавиатуры (проверить на наличие файла), подсчитать количество слов в...

Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов
Написать программу, которая вводит с клавиатуры одномерный массив из 5 целых чисел и выводит количество ненулевых элементов. Перед вводом...

Написать программу которая читает целые числа
Написать программу, которая читает целые числа(столько, сколько введет пользователь) из стандартного ввода и выводит максимальное и...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru