Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/15: Рейтинг темы: голосов - 15, средняя оценка - 4.87
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22

Ввод из файла в массив и нахождение наиболее встречающегося элемента

30.11.2014, 10:42. Показов 3420. Ответов 43
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день (вечер)! Нужно написать программу так, чтобы она создавала файл из рандомных чисел, далее нужно вывести содержимое этого файла на экран, затем в этом содержимом файла найти наиболее встречающийся символ и заменить его на '+'. Я сделал так, чтобы файл создавался, выводился на экран, а вот как найти наиболее встречающийся символ и заменить его на '+' понять не могу. Мои мысли сводятся к тому, что нужно содержимое файла записать в строчный массив, затем уже с этим массивом работать и искать символы, но как это реализовать, не могу понять.
Вот код моих наработок :
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
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <ctime>
#include <stdio.h>
#include<time.h>
#include <cstdio>
#include <string>
#include <iostream>
#include <fstream>
#include <vector>
#include <Windows.h>
#include <stdio.h> 
#include <conio.h>
#include <string.h>
using namespace std;
void fun1();
void fun2();
void fun3();
void fun4();
void fun5();
char i;
char *Array = new char(10);
char *k = new char(1);
const char N=20;
int main(){
while (1)  {
    setlocale (0,"");
      cout<<"1.Сгенерировать \n"<<"2.Показать \n"<<"3.Изменить \n"<<"4.Об Авторе \n"<<"5.Выход \n";
      int n;
      cin>>n;
      switch (n) {
             case 1: fun1(); break;
             case 2: fun2(); break;
             case 3: fun3(); break;
             case 4: fun4(); break;
             case 5: return 0; break;
             default: cout<<"Не выбран пункт меню \n"; break;
             }
      }    
}
void fun1() {
        setlocale (0,"");
     srand(time(0));
ofstream file("t.txt");
for(i=0; i<10; i++)
file<<(char)(rand()%91+32);                                                                                
     }
void fun2() {
ifstream file("t.txt");
while (!file.eof())
{
for (char i=0;i<N;i++)
{ 
file.get(Array[i]);
}
Array[i] = '\n';
for (char j = 0; j < i; ++ j)
cout << Array[j];
cout<<"\n";                                                                                                  
}    
}
void fun3() {
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
30.11.2014, 10:42
Ответы с готовыми решениями:

Найти в массиве и вывести значение наиболее часто встречающегося элемента
Здравствуйте вы мне можете помочь? вот условие задачи, её надо сделать на С.... заранее благоларю... 1. Найти в массиве и вывести...

Найти в массиве и вывести значение наиболее часто встречающегося элемента.
ПАцаны помогите, попадаю... отблагадарю... 1. Найти в массиве и вывести значение наиболее часто встре* чающегося элемента.

Clojure Поиск наиболее встречающегося элемента в списке
Здравствуйте. Необходимо написать функцию, которая находит чаще всего встречающийся в списке атом типа &quot;строка&quot;. (defun moda...

43
26 / 26 / 17
Регистрация: 08.04.2012
Сообщений: 202
02.12.2014, 16:58
Студворк — интернет-сервис помощи студентам
Serjin, для стринга тоже куча действий есть, можете попробовать переписать заменив массив на стринг
0
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
02.12.2014, 17:06  [ТС]
Хм, то есть уже сравнивать не два массива, а две строчки, я правильно понял?

Добавлено через 3 минуты
Получилось, вот как переписал и все заработало
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
ofstream f;// создаем поток на запись
                     ifstream file;// создаем поток на чтение
                    file.open("t.txt");
                    string a;
                    char b;
                    if (!file.is_open()) {cout<<"Не найден файл"<<endl; break;}
                    else  while (!file.eof())
                        {
                            getline(file,a);
                           // file>>a;
                            
                        }
                    int schetchik=0,c=0;
 
                    
                    for (int i=0;i<g-1;i++)
                    {
                        for (int j=0;j<g-1;j++) 
                        {
                            if (a[i]==a[j]) schetchik+=1; /* если элемент массива a[0]равен a[1] то счетчик увеличивается на 1., далее увеличивается j пока не станет меньше g, а i все это время =0
                                                         следующий круг i увеличивается на 1. 
                                                         если элемент массива a[1]равен a[1] то счетчик увеличивается на 1., далее увеличивается j пока не станет меньше g, а i=1
                                                         и т.д.*/
                        }
 
                        if (schetchik>c) {c=schetchik;b=a[i];} /*счетчике хранится сколько раз какая перепенныя встречается в тексте, если это переменная встречается больше максимальной(переменная с)
                                                               то переменная с перезаписывается, и в b сохраняется какая именно переменная встретилась столько то раз*/
                        schetchik=0;//обнуляем счетчик
                    }
 
 
                    for (int i=0;i<g;i++)
                    {
                        if (c<2) {cout<<"Нет символов встречающихся чаще 1 раза";break;}//если максимальна переменная встречалась только 1 раз, то выводим сообщение и прекращаем работу цикла фор(break)
                        if (a[i]==b) a[i]='+';// если a[i] равна переменной которая встречается чаще всего то перезапищем ее на +
                    }
                   if (c>1) cout<<"Часто встречающийся символ:"<<" "<<b<<endl<<"Теперь в файле записанна последовательность из символов:"<<" "<<a;// если максимальная(по встречам в тексте) переменная встречалась чаще одного раза, то скажем что это за переменная
                   { file.close();// закрываем поток чтения
                    f.open("t.txt");
                    f<<a;// записываем массив а в файл
                    f.close(); // закрываем поток записи
                    cout<<endl;
                    break;
0
26 / 26 / 17
Регистрация: 08.04.2012
Сообщений: 202
02.12.2014, 17:09
поздравляю))
0
0 / 0 / 0
Регистрация: 30.11.2014
Сообщений: 22
02.12.2014, 17:33  [ТС]
Цитата Сообщение от ыфырф1992 Посмотреть сообщение
поздравляю))
Спасибо, без вашей помощи не получилось бы

Добавлено через 23 минуты
Что-то я не пойму, я немного переделал программу и теперь она ругается на брейк в этой строчке
C++
1
2
3
4
5
6
7
ofstream f;// ñîçäàåì ïîòîê íà çàïèñü
                     ifstream file;// ñîçäàåì ïîòîê íà ÷òåíèå
                    file.open("t.txt");
                    string a;
                    char b;
                    if (!file.is_open() ) {cout<<"Íå íàéäåí ôàéë"<<endl; break; 
                    }
[Error] break statement not within loop or switch
что может быть?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.12.2014, 17:33

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

Нахождение в массиве элемента наиболее близкому к заданному числу
Задача: Найти элемент массива А состоящий из N элементов,ближайший к заданному* числу С т.е элемент для которого А(I) -С достигается min....

Удаление из массива наиболее часто встречающегося значения
Возникла проблема, в информатике шарю очень мало, что очень обидно, а разобраться хочется. Нашёл задание: &quot;Удалить из массива...

Удаление из массива наиболее часто встречающегося значения
Задание заключается в &quot;Удаление из массива наиболее часто встречающегося значения. Если таких значений несколько, то выбрать любое из них....

Поиск наиболее часто встречающегося подмножества с помощью Select
Есть таблица вида: id letter 1 a 1 b 1 c 2 a 2 b 2 c 3 a 3 c


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

Или воспользуйтесь поиском по форуму:
44
Ответ Создать тему
Новые блоги и статьи
Транслитерация текста с кириллицы на латиницу (вариант №2)
Maks 13.11.2026
Обновленная версия ранее созданной обработки. Добавлено: - Проверка исходного текста на кириллицу, через обращение к стандартной функции "ТолькоКириллицаВСтроке" из общего модуля. . .
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru