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]);
}

Программа компилируется, но выдает не верные результаты. Наверное не верно заполняю массив, как поправить. Зарание спасибо за помощь.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
micro-chipset
  опции профиля:
сообщение 29.1.2011, 14:43
Сообщение #2


Новичок


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

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




Репутация:   0  


1) С форматированием согласен еще не вошло в привычку придерживаться нормального стиля.

На данный код компилятор ругается:
Ошибки компилятора

gcc power.c -o power
power.c: В функции ‘main’:
power.c:21: предупреждение: несовместимая неявная декларация внутренней функции ‘memset’


enum
    {
        arrlen=15,
    };
    
    int length[arrlen];
    //массив тоже полезно инитить
    memset(length,0,arrlen*sizeof(*length));


Этот кусочек не совсем ясен. Особенно что такое enum и зачем так делается. И зачем инитить массив что это дает. У Керниган и Ритчи пока такого не встречал если можно поясните пожалуста. Хотелось бы понять.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Martein
  опции профиля:
сообщение 3.7.2014, 11:18
Сообщение #3


Новичок


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

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




Репутация:   0  


Цитата(micro-chipset @ 29.1.2011, 14:43) *
Ошибки компилятора

gcc power.c -o power
power.c: В функции ‘main’:
power.c:21: предупреждение: несовместимая неявная декларация внутренней функции ‘memset’


Слушайте, а где это мне нарыть русскоязычный компилятор?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 4.7.2014, 7:49
Сообщение #4


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

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

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




Репутация:   12  


Цитата(Martein @ 3.7.2014, 14:18) *
Слушайте, а где это мне нарыть русскоязычный компилятор?

а зачем? программист в любом случае должен свободно читать по-английски. потому что в 99% случаев никто ему не будет переводить документацию. так что если собираешься работать программистом - лучше сразу как можно раньше начинать изучать английский, хотя бы технический.
ну и при использовании русскоязычного компилятора могут возникнуть проблемы взаимодействия с другими программистами: я, например, не могу читать вывод русскоязычных компиляторов и затрудняюсь дать какой-либо совет, когда человек приводит такой вывод. слишком сложно догадаться, что имелось в виду, когда читаешь ужасы перевода сообщений компилятора на русский язык :)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- 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, 3:54