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

Ошибка в коде (работа с массивами)

10.03.2015, 21:23. Показов 938. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите исправить ошибку в коде немогу понять в чем проблема

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
#include <iostream>
 #include <string>
 #include <limits>
#include <conio.h>
 int main()
 {
 
         enum{ NCHARS = 255 } ; // assuming char values are in the range 0-255
         // 2d array of frequency: row is first char, col is second char
         int frequency[NCHARS][NCHARS][NCHARS] = {{{0}}}; // init. to zeroes
 
         std::string text ;
         std::cout << "enter text " ;
         std::getline( std::cin, text ) ;
         const int len = text.size() ; // #chars in input
 
         for( int i = 0 ; i < (len-2) /*upto the second last char*/ ; ++i )
          ++frequency[ int(text[i]) ][ int(text[i+1]) ][ int(text[i+2]) ] ; // increment frequency
    
         for( int i = 0 ; i < 255 /*upto the second last char*/ ; ++i )
        for( int j = 0 ; j < 255 /*upto the second last char*/ ; ++j ){
        for( int k = 0 ; k < 255 /*upto the second last char*/ ; ++k ){
        
        if ( frequency[i][j][k] )
        std::cout << (char)i << (char)j << (char)k <<" " << frequency[i][j][k] << '\n' ;
 }  }}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.03.2015, 21:23
Ответы с готовыми решениями:

Ошибка в программе. Работа с двумерными массивами
Задача:Три группы студентов, в каждой из которых 20 человек, в сессию сдавали по 3 экзамена. Сведения об оценках каждой группы хранятся в...

работа со строками, ошибка в коде
#include &lt;iostream&gt; #include &lt;cstring&gt; using namespace std; class str{ char *a; int n; public: str(); ...

Работа со структурой. Ошибка в коде
Задача: Отсортировать студентов по оценке по первому предмету. Вывести на экран фамилии и даты рождения студентов, не получивших за все...

5
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
10.03.2015, 21:47
В какой строке, какая ошибка?
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
10.03.2015, 21:57
Цитата Сообщение от whitejoker Посмотреть сообщение
std::string text ;
std::cout << "enter text " ;
std::getline( std::cin, text ) ;
Заменяем на
C++
1
2
3
unsigned char text[256];
 std::cout << "enter text " ; 
std::cin.getline(text ,256);
и i,j,k индексы циклов (строки 20-22) тоже сделайте unsigned char
а в 18 строке преобразование в int уберите
0
0 / 0 / 0
Регистрация: 08.03.2015
Сообщений: 34
11.03.2015, 00:27  [ТС]
ошыбку выдает

[Error] invalid conversion from 'unsigned char*' to 'std::basic_istream<char>::char_type* {aka char*}' [-fpermissive]
[Error] request for member 'size' in 'text', which is of non-class type 'unsigned char [256]'
среда devcpp компилятор стандарта C++03
0
Модератор
Эксперт С++
 Аватар для zss
13772 / 10965 / 6491
Регистрация: 18.12.2011
Сообщений: 29,242
11.03.2015, 08:52
Пришлось массив сделать глобальным - не помещается в стек
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
#include <iostream>
#include <cstring>
 
const int NCHARS = 255 ; // assuming char values are in the range 0-255
    // 2d array of frequency: row is first char, col is second char
int frequency[NCHARS][NCHARS][NCHARS]={0}; // init. to zeroes
 
int main()
{
 
 
    unsigned char text[256];
    std::cout << "enter text " ;
    std::cin.getline((char*)text,256 ) ;
    int len = strlen((char*)text) ; // #chars in input
 
    for( int i = 0 ; i < (len-2) /*upto the second last char*/ ; ++i )
        ++frequency[ (text[i]) ][ (text[i+1]) ][ (text[i+2]) ] ; // increment frequency
 
    for( unsigned char  i = 0 ; i < NCHARS /*upto the second last char*/ ; ++i )
        for( unsigned char  j = 0 ; j < NCHARS /*upto the second last char*/ ; ++j )
        {
            for( unsigned char k = 0 ; k < NCHARS /*upto the second last char*/ ; ++k )
            {
 
                if ( frequency[i][j][k] )
                    std::cout << i << j << k <<" " << frequency[i][j][k] << '\n' ;
            }
 
        }
    system("pause");
    return 0;
}
0
0 / 0 / 0
Регистрация: 08.03.2015
Сообщений: 34
11.03.2015, 15:28  [ТС]
Спасибо за ответ!!!))
буду пробовать
и анализировать ошибки)

Добавлено через 5 минут
и еще маленький вопрос:

как правильно изменить строку
C++
1
    std::cin.getline((char*)text,256 ) ;
чтобы взять текст из файла???

Добавлено через 2 часа 46 минут
уже разобрался))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
11.03.2015, 15:28
Помогаю со студенческими работами здесь

Бинарное дерево и работа с текстами. В коде возникает ошибка с работой памяти
#include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;map&gt; #include &lt;string&gt; int main() { setlocale(LC_ALL, &quot;Russian&quot;); ...

Работа с массивами в С++
Доброго времени суток! Пытался составить программу, формулировка которой звучит так: Дан массив натуральных чисел n размерности m (m...

Работа с массивами
Дан массив A размера N. Сформировать новый массив B того же размера по следующему правилу: элемент BK равен среднему арифметическому...

Работа с массивами
Я прошел такие темы как : Условный оператор if Оператор выбора switch Оператор безусловного перехода goto Цикл Цикл с параметром...

Работа с массивами
Подскажите пожалуйста, что значит &quot;**&quot; в данной строке? void Array(int ** array, int size); Спасибо!


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru