Форум: "Потрепаться";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
ВнизЗадачка Найти похожие ветки
← →
Nikolay M. © (2004-07-28 15:52) [0]Дан кусок кода:
int i, j=20;
for (i = 0; i < j; i--)
printf(".");
Надо напечатать 20 раз "."
Что делает это код в действительности?
Исправить ошибку 3-мя способами: 1. Добавить символ, 2. Убрать символ, 3. Заменить один символ на другой.
Добавить и заменить - понятно, а вот удалить пока не получается :( Возможно, просто задача некорректная...
← →
Jeer © (2004-07-28 15:59) [1]Так может j лишняя:)
← →
Игорь Шевченко © (2004-07-28 16:00) [2]
> 3. Заменить один символ на другой.
j-- вместо i-- ?
← →
Ega23 © (2004-07-28 16:01) [3]А как с "Добавить символ"?
А, понял! i=40
← →
Nikolay M. © (2004-07-28 16:03) [4]
> Игорь Шевченко © (28.07.04 16:00) [2]
Имхо, да.
Хотя, возможно, сработает более кучерявый способ: < на +.
← →
Vitaly © (2004-07-28 16:04) [5]
> А, понял! i=40
и чего получится?
← →
Ega23 © (2004-07-28 16:05) [6]int i, j=20;
for (i = 40; i < j; i--)
printf(".");
← →
Sandman25 © (2004-07-28 16:05) [7][3] Ega23 © (28.07.04 16:01)
Нет
j=-20
← →
Игорь Шевченко © (2004-07-28 16:06) [8]
> Хотя, возможно, сработает более кучерявый способ: < на +.
За это сразу расстреливать :) Из рогатки тремя очередями.
← →
Nikolay M. © (2004-07-28 16:06) [9]
> Ega23 © (28.07.04 16:05) [6]
> int i, j=20;
> for (i = 40; i < j; i--)
> printf(".");
Тело цикла не выполнится ни разу.
← →
Sandman25 © (2004-07-28 16:06) [10]Нет, стормозил :(
← →
Vitaly © (2004-07-28 16:07) [11]Добавить?
for (i = 0; -i < j; i--)
← →
Nikolay M. © (2004-07-28 16:08) [12]
> Игорь Шевченко © (28.07.04 16:06) [8]
> > Хотя, возможно, сработает более кучерявый способ: < на
> +.
> За это сразу расстреливать :) Из рогатки тремя очередями.
Ага :)
Решение из разряда "Счастье для следующего поколения программистов". Но ведь должно сработать.
Хотя, конечно, сначала приходит в голову i <> j :)
← →
Sandman25 © (2004-07-28 16:08) [13][11] Vitaly © (28.07.04 16:07)
Точно.
← →
Ega23 © (2004-07-28 16:08) [14]А, ну да. :о) Что-то я истину с ложью перепутал.. :о)
← →
Nikolay M. © (2004-07-28 16:09) [15]
> Хотя, конечно, сначала приходит в голову i <> j
В смысле поменять i и j.
← →
nikkie © (2004-07-28 16:09) [16]>Хотя, возможно, сработает более кучерявый способ: < на +.
сработает, конечно.
← →
Игорь Шевченко © (2004-07-28 16:09) [17]Sandman25 © (28.07.04 16:05) [7]
> j=-20
?
Цикл не сработает, так как
for (i = 0; i < j; i--)
не выполнится, 0 > -20
← →
ИдиотЪ (2004-07-28 16:09) [18]Nikolay M. ©
один способ применять или все три можно? и по-скольку раз?
← →
Sandman25 © (2004-07-28 16:10) [19]ИМХО через удалить невозможно - перебор всех вариантов это доказывает.
← →
Sandman25 © (2004-07-28 16:11) [20][17] Игорь Шевченко © (28.07.04 16:09)
Я знаю. См. [10] :)
← →
Nikolay M. © (2004-07-28 16:11) [21]
> ИдиотЪ (28.07.04 16:09) [18]
3 способа - 3 решения. Два найдены, меня лично интересует удаление. Вариант есть, но он некорректно отвечает поставленному условию :(
← →
Sandman25 © (2004-07-28 16:13) [22][21] Nikolay M. © (28.07.04 16:11)
int i, j=20;
for (i = 0; i < j(*; i*)--)
printf(".");
Удаляется несколько символов
← →
Nikolay M. © (2004-07-28 16:17) [23]
> Sandman25 © (28.07.04 16:13) [22]
У меня вариант с удалением одного символа, но печатается далеко не 20 символов, а намного больше :)
← →
Игорь Шевченко © (2004-07-28 16:17) [24]Sandman25 © (28.07.04 16:13)
syntax error : missing ";" before ")"
← →
nikkie © (2004-07-28 16:19) [25]разве можно в for одним ; обходиться?
← →
Sandman25 © (2004-07-28 16:19) [26][24] Игорь Шевченко © (28.07.04 16:17)
Точно, спасибо.
← →
Sandman25 © (2004-07-28 16:22) [27]int i(*, j*)=20;
for ((*i = 0*); i(* < j*); i--)
printf(".");
Куча символов удаляется, получается
int i=20;
for (; i; i--)
printf(".");
← →
Nikolay M. © (2004-07-28 16:24) [28]
> Sandman25 © (28.07.04 16:22) [27]
> int i(*, j*)=20;
> for ((*i = 0*); i(* < j*); i--)
> printf(".");
>
> Куча символов удаляется, получается
> int i=20;
> for (; i; i--)
> printf(".");
Если в слове "вода" сделать 4 ошибки, получится слово "пиво"? :)
← →
Sandman25 © (2004-07-28 16:25) [29]Символы комментариев спутал с дельфийскими.
/* */, конечно же.
← →
Sandman25 © (2004-07-28 16:26) [30][28] Nikolay M. © (28.07.04 16:24)
Устрой полный перебор
← →
Nikolay M. © (2004-07-28 16:32) [31]
> Sandman25 © (28.07.04 16:26) [30]
Уже :)
Правда, в уме, конечно :)
Если в 20 удалить 0, будет печататься ~ 2^(sizeof(int)-1) + 2 раз. Т.е. 20 точек все-таки напечатаются...
← →
Sandman25 © (2004-07-28 16:39) [32][31] Nikolay M. © (28.07.04 16:32)
Можно удалить, например, i из слова int, создать свой класс nt, и реализовать operator-- в виде this++ :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2004.08.15;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.063 c