crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Начал изучать Си. Первые трудности.
micro-chipset
  опции профиля:
сообщение 29.1.2011, 10:54
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 7
Регистрация: 27.1.2011
Пользователь №: 2371

Спасибо сказали: 0 раз(а)




Репутация:   0  


Возникла проблема со следующей задачей. Задача из из книги Б. Керниган, Д. Ритчи "Язык программирования Си" Глава 1.6 упражнение 1.13 Книгу онлайн можно найти тут

Сама задача
Програма должна выводить гистограмму длин слов во входном потоке. т.е. надо чтобы выводился массив допустим длинной 15 первый элемент слово из нуля букв второй символ слово из одной буквы третий символ из 2 букв ну и так далее.


набросок программы

#include <stdio.h>

/*Программа вывода гистограммы длин слов во входном потоке*/

main ()
{
    int i, c, j;
    int length[15];
    
    j = 0;
    
    for (i = 0; i < 15; i++)
        length[i] = 0;
    while ((c = getchar()) != EOF)
        if (c != ' ' || c != '\t' || c != '\n'){
            ++j;
            ++length[c-j];
        }
    printf("Длинна слов =");
    for (i = 0; i < 15; i++)
        printf(" %d", length[i]);
}

Программа компилируется, но выдает не верные результаты. Наверное не верно заполняю массив, как поправить. Зарание спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Iron Bug
  опции профиля:
сообщение 31.1.2011, 19:44
Сообщение #2


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Алексей1153 @ 31.1.2011, 21:18) *
а доказательства ? И какие-то разве последствия будут ?

это определение структуры языка. в enum можно пропускать символические константы (типа { one=1, ,three=3,,,six=6 }). последняя константа - не исключение. можешь проверить, у меня просто было достаточно опыта с такими глюками. потенциальные проблемы - в пропускании тегов посередине. если потом используются манипуляции с последовательной нумерацией. не смертельно, но найти сложно. хотя, может, не все компиляторы такое позволяют, но у меня точно была такая проблема однажды.

Сообщение отредактировал Iron Bug - 31.1.2011, 19:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- micro-chipset   Начал изучать Си. Первые трудности.   29.1.2011, 10:54
- - Алексей1153   а почему именно C, а не C++ ? Или тебе для микроко...   29.1.2011, 12:51
- - micro-chipset   1) С форматированием согласен еще не вошло в привы...   29.1.2011, 14:43
|- - Martein   Цитата(micro-chipset @ 29.1.2011, 14...   3.7.2014, 11:18
|- - Iron Bug   Цитата(Martein @ 3.7.2014, 14:18) Слушайт...   4.7.2014, 7:49
|- - Анна   Цитата(Iron Bug @ 4.7.2014, 8:49) Цитата(...   30.7.2014, 13:42
- - Алексей1153   Цитата(micro-chipset @ 29.1.2011, 16...   29.1.2011, 16:17
- - Litkevich Yuriy   Цитата(Алексей1153 @ 29.1.2011, 18:17) пр...   29.1.2011, 20:16
- - DEADHUNT   Цитата(Алексей1153 @ 29.1.2011, 16:17) Ци...   29.1.2011, 20:22
- - Rocky   Кстати, а в ANSI C есть операторы "++" и...   29.1.2011, 21:01
|- - BRE   Цитата(Rocky @ 29.1.2011, 21:01) Кстати, ...   29.1.2011, 21:09
- - Rocky   Буду знать, пасиб)   29.1.2011, 22:10
- - micro-chipset   Программа компилируется и работает. Но выдает не в...   30.1.2011, 10:55
- - DEADHUNT   файл utf8, а ты его как ASCII читаешь.   30.1.2011, 11:27
|- - micro-chipset   Цитата(DEADHUNT @ 30.1.2011, 11:27) файл ...   30.1.2011, 11:34
- - Алексей1153   Цитата(Litkevich Yuriy @ 29.1.2011, 22:16...   30.1.2011, 15:00
- - micro-chipset   А все же что с решением задачки. Работает она не в...   30.1.2011, 15:59
- - Алексей1153   micro-chipset, покажи алгоритм на обычном русском ...   30.1.2011, 16:49
- - DEADHUNT   Цитата(micro-chipset @ 30.1.2011, 11...   30.1.2011, 17:12
|- - micro-chipset   Цитата(DEADHUNT @ 30.1.2011, 17:12) Цитат...   30.1.2011, 17:37
- - Алексей1153   micro-chipset, это ты уже почти программу пытаешьс...   30.1.2011, 17:58
|- - micro-chipset   Цитата(Алексей1153 @ 30.1.2011, 17:58) mi...   30.1.2011, 18:06
- - Алексей1153   строку можно тоже представить потоком, а новые стр...   30.1.2011, 18:54
- - Iron Bug   Цитата(micro-chipset @ 29.1.2011, 16...   31.1.2011, 19:08
- - Алексей1153   ну, запятую я случайно оставил, да. Цитата(Iron ...   31.1.2011, 19:18
- - Iron Bug   Цитата(Алексей1153 @ 31.1.2011, 21:18) а ...   31.1.2011, 19:44
- - Алексей1153   Iron Bug, так я же не спорю, что если в середине п...   31.1.2011, 20:02
- - DEADHUNT   Цитата(Iron Bug @ 31.1.2011, 19:44) это о...   31.1.2011, 20:43
- - Алексей1153   Цитата(DEADHUNT @ 31.1.2011, 22:43) enum ...   31.1.2011, 21:08
- - Iron Bug   Цитата(DEADHUNT @ 31.1.2011, 22:43) вообщ...   31.1.2011, 21:41
- - Litkevich Yuriy   DEADHUNT, нет ли у тебя в закромах ссылки на текст...   31.1.2011, 22:02
- - Rocky   У меня был где-то... если нужен поищу.. дай мыло с...   31.1.2011, 22:05
- - DEADHUNT   Цитата(Iron Bug @ 31.1.2011, 21:41) а, на...   31.1.2011, 23:02
- - Iron Bug   Цитата(DEADHUNT @ 1.2.2011, 1:02) нету та...   1.2.2011, 14:05
- - DEADHUNT   Цитата(Iron Bug @ 1.2.2011, 14:05) как ми...   1.2.2011, 15:48
- - igor_bogomolov   У меня компилируется. Но значения не сдвигаются gc...   1.2.2011, 16:48
- - Jason-GTK   как-то так ... сам недавно начал . #include ...   9.5.2014, 1:16
- - Jason-GTK   Может на этом форуме и нет живых , но для случайны...   11.5.2014, 5:02
- - lanz   Студию Express можно поставить русскоязычную. Я с ...   3.7.2014, 20:23


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 15:44