Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Toryka
2 / 2 / 3
Регистрация: 16.05.2015
Сообщений: 20
1

Если номер элемента массива равен ASCII-коду символа текста, инкрементировать элемент (файловый ввод/вывод)

26.09.2016, 19:51. Просмотров 389. Ответов 4

задача с частотным анализом.
создаю массив из 256 элементов, значения которых равны нулю.
считываю построчно текст из файла.
если номер элемента массива равен ascii-коду символа текста, то значение элемента массива увеличить на единицу.
при выводе значений массива Mass какой-то бред выводит.
в чем ошибка?

C++
1
2
3
4
5
6
7
8
9
10
11
int analiz(){
    int Mass[256]={0};
    int i, j, S=123;
    char buff[123];
    ifstream fin("referat.txt");
    fin.getline(buff, 123);
    for (i=0;i<=123;i++){
            for (j=0;j<=256;j++);{
                if (j=int(buff[i])){
                    Mass[j]=Mass[j]+1;
                    }}}
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2016, 19:51
Ответы с готовыми решениями:

В заданной матрице найти значение и номер максимального элемента (файловый ввод/вывод)
Из тестового файла ввести двумерный массив L(n,n), состоящий из целых чисел и вычислить: • найти...

Ввод символа и вывод его ASCII-кода в заданной системе счисления
Здравствуйте у меня возникла проблема мне нужно реализовать программу которая бы Вводила символ и...

Получите новый массив, каждый элемент которого равен удвоенному числу соответствующего элемента исходного массива, если он больше числа A...
2)Сформировать массив, содержащий n элементов, с помощью чисел, введенных с клавиатуры. Получите...

Файловый ввод-вывод, ввод с клавиатуры и обработка массива структур
Добрый вечер)) У меня небольшой вопрос. Почему первые буквы (в названии книг) не выводит на экран?...

В заданном файле найти порядковый номер самого большого числа (файловый ввод/вывод)
Входной файл: input.txt Выходной файл: output.txt Женя купила 12 яблок и по приходу домой...

4
gazlan
3163 / 1922 / 312
Регистрация: 27.08.2010
Сообщений: 5,131
Записей в блоге: 1
26.09.2016, 20:22 2
Почему вдруг построчно? Считывать надо в беззнаковый тип.
0
ValeryS
Модератор
7818 / 5817 / 758
Регистрация: 14.02.2011
Сообщений: 19,935
Завершенные тесты: 1
26.09.2016, 20:47 3
Цитата Сообщение от Toryka Посмотреть сообщение
C++
1
char buff[123];
C++
1
unsigned char buff[123];
Цитата Сообщение от Toryka Посмотреть сообщение
C++
1
2
3
for (j=0;j<=256;j++);{
                      if (j=int(buff[i])){
                          Mass[j]=Mass[j]+1
C++
1
Mass[buff[i]]++;
Добавлено через 1 минуту
не говоря уже о куче других ошибок
0
Байт
Эксперт C
21019 / 13273 / 2792
Регистрация: 24.12.2010
Сообщений: 27,967
26.09.2016, 21:20 4
Имхо, ТС вообще не очень понимает, зачем он завел обнуленный Mass, что такое частотный анализ, и как работает функция getline, и другие. Разбирать ошибки его кода, чем безуспешно пытался заняться уважаемый ValeryS, - себе дороже. Единственно, что остается, это подправить код в строках 8-10
C++
1
Mass[buf[i]] ++;
Конечно, unsigned char buf[123].
0
zss
Модератор
Эксперт С++
8417 / 7452 / 4614
Регистрация: 18.12.2011
Сообщений: 19,710
Завершенные тесты: 1
26.09.2016, 21:45 5
Это уже не актуально, но на будущее:
1.
Цитата Сообщение от Toryka Посмотреть сообщение
if (j=int(buff[i])){
В этой строке j ПРИСВАИВАЕТСЯ значение buff[i].
2.
Цитата Сообщение от Toryka Посмотреть сообщение
for (i=0;i<=123;i++){
C++
1
for (i=0;buff[i]!=0;i++){
При i=123 buff[i] не существует, т.к. последний элемент имеет индекс 122
3.
Цитата Сообщение от Toryka Посмотреть сообщение
for (j=0;j<=256;j++);{
Та же ошибка, что и в п.2. Плюс к этому тело цикла пустое (стоит точка с запятой)
1
26.09.2016, 21:45
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.09.2016, 21:45

Получить новый массив B, каждый элемент которого равен сумме соответствующего элемента массива А и минимального элемента массива А
1) Дан одномерный массив А. Получить новый массив B, каждый элемент которого равен сумме...

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод)
Как сделать чтобы список студентов выводился на экран в конце? #include&lt;iostream&gt; ...

Вывести номер наперстка, под которым окажется шарик после перемещений (файловый ввод/вывод)
Шулер показывает следующий трюк. Он имеет три одинаковых наперстка. Под первый (левый) он кладет...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

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