|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
||||||
Обьясните принцип работы программы24.06.2015, 17:16. Показов 1386. Ответов 12
Метки нет (Все метки)
1) как связаны symbols[c] и symbols[i] 2) могут появиться еще вопросы по мере обьяснений. ... За ранее спасибо!
0
|
||||||
| 24.06.2015, 17:16 | |
|
Ответы с готовыми решениями:
12
Принцип работы программы Объясните принцип работы программы Объясните принцип работы программы |
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|
| 24.06.2015, 17:21 | |
|
1
|
|
|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
|
| 24.06.2015, 17:23 [ТС] | |
|
Можно хорошую литературу, где более менее понятным языком написано, пожалуйста. На ваш выбор.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|
| 24.06.2015, 17:23 | |
|
0
|
|
|
75 / 1 / 1
Регистрация: 24.06.2015
Сообщений: 16
|
|
| 24.06.2015, 17:31 | |
|
Массив symbols[256]
symbols[i] = 0; // обнуляем i-тый элемент массива. ++symbols[c]; // увеличиваем на 1 с-тый элемент массива. ... Что непонятно - спрашивайте.
0
|
|
|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
|
| 24.06.2015, 17:32 [ТС] | |
|
Если Simbol[c] и simbol[i] один и тот же массив, зачем мы ставим цикл for для перебора i ?
for(i = 0; i < 256; i++) if(symbols[i] > 0){ if(i >= 32)
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
|||
| 24.06.2015, 17:40 | |||
Сообщение было отмечено OrangeSound как решение
Решениеi=0 обращение к первому элементу массива simbol[0] i=1 обращение к первому элементу массива simbol[1], ну и так далее говорю же почитай, иначе будет сумбур в голове Си чувствителен к региструSimbol и simbol разные имена как скажем Земля- планета и земля- грунт
1
|
|||
|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
|
| 24.06.2015, 17:43 [ТС] | |
|
я имел ввиду simbol[c] и simbol[i] извиняюсь, спасибо, уже читаю.
0
|
|
|
75 / 1 / 1
Регистрация: 24.06.2015
Сообщений: 16
|
|
| 24.06.2015, 17:49 | |
|
Мы же определяем гистограмму частот встречаемости введенных символов
значит нужно перебрать все элементы массива symbols Вот в цикле for(i = 0; i < 256; i++) мы их перебираем. Кстати, в выражении: while((c = getchar()) != EOF){ ++symbols[c]; } ошибка. Так мы не заполним этот массив. Извините - пока отлучусь на 2 часа. До встречи вечером.
0
|
|
|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
|
| 24.06.2015, 17:55 [ТС] | |
|
Я сейчас опишу мое видение работы программы, а если я не прав, поправьте меня, пожалуйста.
1) мы печататем сообщение 2) компьютер считывает первый символ и прибавляет к simbol[c] единичку. 3) т.к. simbol0[c] и simbol[i] это один и тот же массив, и у нас проходит проверка на simbol[i] > 0 4) у нас есть конкретный символ который считал компьютер, он равен какому то значению от 0 до 255 (будь то буква, цифра или другой символ) , т.к. у нас задан массив (обьясните этот момент пожалуйста, почему массив именно 256-значный?) 256 (simbol[256]) и идет проверка на, так сказать, наличие этого компонента в каждой ячейке от 0 до 255 и когда он находит соответствие он проверяет i на значение >= 32 и программа идет дальше. ... 4 пункт для меня самый сложный, можете обьяснить что делает программа именно в этом месте?
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||
| 24.06.2015, 17:56 | ||
|
++symbols[c]; увеличить элемент массива с индексом c на 1 а обнулили мы массив еще раньше и 7-8 строчке
1
|
||
|
0 / 0 / 0
Регистрация: 24.06.2015
Сообщений: 24
|
|
| 24.06.2015, 17:58 [ТС] | |
|
Программа работает корректно, это из решебника к учебнику Кернигана.
0
|
|
|
Модератор
8979 / 6745 / 921
Регистрация: 14.02.2011
Сообщений: 23,863
|
||||
| 24.06.2015, 18:06 | ||||
Сообщение было отмечено OrangeSound как решение
Решение
OrangeSound, ох не любишь ты читать
![]() 256 это количество значений которые входят в char(байт) это количество всех возможных и не возможных комбинаций, которые на выдаст getchar объявили массив, обнулили его затем вводим символ, например 0 код 0 0x30 десятичное 48 значит 49 ячейку(отсчет от 0 идет) увеличиваем на 1 еще раз 0 и еще в simbol[48] будет число 3 потом проходим по всему массиву от начала и до конца, и смотрим ячейки если не 0, значит что то вводили, выводим на экран символ, и его количество в виде решеток Добавлено через 3 минуты https://ru.wikipedia.org/wiki/ASCII значит выводим их код
1
|
||||
| 24.06.2015, 18:06 | |
|
Помогаю со студенческими работами здесь
13
Обьясните код программы Обьясните кусок программы Обьясните код программы Принцип работы strpbrk Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
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 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|