Вниз
Скачать: CL | DM;

Задачка   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.037 c
11-1079064751
hammer
2004-03-12 07:12
2004.08.15
Аналоги процедур МСД для KOL


4-1088757801
Ev-Genius
2004-07-02 12:43
2004.08.15
Образ CD диска


1-1091454495
Dysan
2004-08-02 17:48
2004.08.15
почему возникает ошибка...


6-1087077599
RAshka
2004-06-13 01:59
2004.08.15
проверка открытых портов (в частности UDP)


3-1090247645
sergvc
2004-07-19 18:34
2004.08.15
как добавить в DataSet колонку не связанную с данными для временн




   Наверх