Главная страница
    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.032 c
1-1090861230
AlexeyM
2004-07-26 21:00
2004.08.15
XP manifest


1-1091528706
Alexey Morceleb
2004-08-03 14:25
2004.08.15
Создание элемента управления из dll


1-1091346465
STALKER
2004-08-01 11:47
2004.08.15
Можно ли массив типа Word перевести в массив типа String


8-1086150528
крот
2004-06-02 08:28
2004.08.15
Splitter


1-1091106155
Aleksandr.
2004-07-29 17:02
2004.08.15
Чем Abort внутри метода потока отличится от Terminate?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский