Среда, 18 Декабря 2024, 16:35

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Керриган & Ритчи.Язык Программирования C
vasua99Дата: Четверг, 09 Августа 2012, 16:50 | Сообщение # 1
GNU follower
Сейчас нет на сайте
Здравствуйте, я начал учить C по этой книге, но проблема в том, что дойдя до 2 главы, я не могу выполнить задания.Просто не могу придумать алгоритм для решения(знания конструкций языка есть), что подскажете?Очень охото изучить именно C, ведь это язык Пингвина, в котором я и работаю.

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
pekarДата: Четверг, 09 Августа 2012, 18:08 | Сообщение # 2
почетный гость
Сейчас нет на сайте
Было бы не плохо, еслиб ты написал само задание.

Купил торку и не парюсь.
Ключ Windows 10 Pro от 499р
vasua99Дата: Четверг, 09 Августа 2012, 21:25 | Сообщение # 3
GNU follower
Сейчас нет на сайте
1.13 Напишите программу для вывода гистограммы длин слов во входном потоке.(С горизонтальной гистограммой я справился, а вот с вертикальной идей вообще нет)
1.22 Напишите программу для сворачивания длинных строк в две или более коротких после последнего не пустого символа, встречающегося перед n-м столбцом длинной строки...
1.23 Напишите программу для выполнения примитивной синтаксической проверки программ на C, таких как непарные круглые, квадратные, фигурные скобки....


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
MatouДата: Четверг, 09 Августа 2012, 21:34 | Сообщение # 4
Исходный коТ
Сейчас нет на сайте
В K&R относительно запарные задания они ориентированны на программистов изучающих С, а не на тех кто только учится программировать. Советую выполнить только часть заданий, а к оставшимся вернуться когда наберешься опыта.

Добавлено (09.08.2012, 21:34)
---------------------------------------------

Quote (vasua99)
С горизонтальной гистограммой я справился, а вот с вертикальной идей вообще нет

Понравилась в свое время эта задача, решается в два прохода, сначала составляешь массив с длинами слов, потом в соответствии с этим массивом делаешь вывод, надеюсь идея ясна.



vasua99Дата: Четверг, 09 Августа 2012, 21:40 | Сообщение # 5
GNU follower
Сейчас нет на сайте
с длинной слов не проблема,а вот с выводом вертикальной гистограммы.

Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
MatouДата: Четверг, 09 Августа 2012, 22:07 | Сообщение # 6
Исходный коТ
Сейчас нет на сайте
Ну я же говорю, составляешь массив, потом делаешь построчный вывод в соответствии с этим массивом. Скажем у тебя самое длинное слово 9 букв, выводишь девять строк каждый символ строки выводишь проверяя массив, если девять минус номер строки меньше чем элемент массивы выводишь символ гистограммы, если больше, то пробел.


vasua99Дата: Пятница, 10 Августа 2012, 10:12 | Сообщение # 7
GNU follower
Сейчас нет на сайте
спасибо всем - вроде получилось:

Code

#include <stdio.h>
#include <stdlib.h>
#define MAXHINST 10 /* максимальное количество самых длинных слов */

int compare(const void *a,const void *b)
{
   return (*(int*)b - *(int*)a);
}

int main()
{
   int c, length, hinst_table[256], i, h;
   length = i = 0;
   while((c = getchar()) != EOF) {
     if(c == ' ' || c == '\n' || c == '\t') {
       if(length) {
  hinst_table[i] = length;
  ++i;
       }
       length = 0;
     }
     else
       length++;
   }
   qsort(hinst_table, 256, sizeof(int), compare);
   for(i = hinst_table[0]; i > 0; --i) {
     for(h = 0; h < MAXHINST; ++h) {
       if(hinst_table[h] < i)
  putchar(' ');
       else
  putchar('*');
     }
     putchar('\n');
   }
}


Жизнь игра, и мы в ней пешки... А я кушаю пельмешки)
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг