Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
6-1087233176
vic_vm
2004-06-14 21:12
2004.08.15
Чем лучше скачать файл? - вопрос принятия концепции


14-1091176605
Alx2
2004-07-30 12:36
2004.08.15
Кто помнит свои детские заблуждения?


14-1091102608
Vovchik_A
2004-07-29 16:03
2004.08.15
Внимание вопрос !


4-1088665209
Cara
2004-07-01 11:00
2004.08.15
Как нажать кнопку и получить текст. Пример


3-1090424668
GanibalLector
2004-07-21 19:44
2004.08.15
Возможно ли это ???





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский