Начал изучать Си. Первые трудности. |
Здравствуйте, гость ( Вход | Регистрация )
Начал изучать Си. Первые трудности. |
micro-chipset |
29.1.2011, 10:54
Сообщение
#1
|
Новичок Группа: Новичок Сообщений: 7 Регистрация: 27.1.2011 Пользователь №: 2371 Спасибо сказали: 0 раз(а) Репутация: 0 |
Возникла проблема со следующей задачей. Задача из из книги Б. Керниган, Д. Ритчи "Язык программирования Си" Глава 1.6 упражнение 1.13 Книгу онлайн можно найти тут
Сама задача Програма должна выводить гистограмму длин слов во входном потоке. т.е. надо чтобы выводился массив допустим длинной 15 первый элемент слово из нуля букв второй символ слово из одной буквы третий символ из 2 букв ну и так далее. набросок программы
Программа компилируется, но выдает не верные результаты. Наверное не верно заполняю массив, как поправить. Зарание спасибо за помощь. |
|
|
Алексей1153 |
29.1.2011, 16:17
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2939 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
На данный код компилятор ругается: надо заголовочник добавить <memory.h> enum - это объявление константы типа int (причём, эта константа будет иметь область видимости, что очень хорошо) arrlen*sizeof(*length) - это выражение даст длину массива в байтах ( arrlen * длину_одного_элемента_массива) (*length) - это разыменование указателя, так что sizeof этого выражения вернёт размер указуемого элемента для статического массива можно было бы и просто sizeof(length) написать, но я не стал тебя путать и показал универсальный вариант для статических и для динамических массивов И зачем инитить массив что это дает инициализировать нужно абсолютно всё, иначе сюрпризы будут появляться в программах постоянно Сообщение отредактировал Алексей1153 - 29.1.2011, 16:19 |
|
|
Текстовая версия | Сейчас: 26.4.2024, 18:48 |