Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Интересные и занимательные задачи по программированию > [C] задачка


Автор: ShadeSt 24.11.2006, 16:40
Сегодня прислали задачку.
Может было, сильно не бейте.

Код

main()
{
       int i, N=20;
       for(i = 0; i < N; i --)
              printf("*");
}

Код

этот код должен печатать 20 звездочек. но не печатает.
Исправьте эту программу, чтобы она печатала 20 звездочек, изменив только одну литеру (можно
вставить одну литеру, либо удалить одну литеру, либо заменить одну литеру на другую, но только
одну!). Известно три решения этой задачи, найдите все три.

Автор: Romikgy 24.11.2006, 16:44
Цитата(ShadeSt @  24.11.2006,  15:40 Найти цитируемый пост)
заменить одну литеру

что есть литера?
-- заменить на ++ это условие выполняется?

Автор: ShadeSt 24.11.2006, 16:57
литера - это один символ

Цитата(Romikgy @  24.11.2006,  16:44 Найти цитируемый пост)
-- заменить на ++ это условие выполняется?

это уже две литеры ( два символа)
но если заменить, то будет счастье, но это не то... smile

Автор: Lamak 24.11.2006, 17:07
ну вот одно решение
Код


main()
{
       int i, N=20;
       for(i = 0; -i < N; i --)
              printf("*");
}
 


Добавлено @ 17:14 
вот кажись другое
Код

main()
{
       int i, N=20;
       for(i = 0; i < N; N --)
              printf("*");
}

правда не совсем уверен отработает ли оно но мне кажется что должно

Добавлено @ 17:20 
а третье решение от меня ускользает smile 

Автор: volvo877 24.11.2006, 18:02
Наверное, так?
Код

main()
{
       int i, N=20;
       for(i = 0; i + N; i --)
              printf("*");
}

Автор: mr.Anderson 24.11.2006, 18:07
Ой, не то... прошу мое сообщение удалить, сам не могу.

Автор: ShadeSt 24.11.2006, 19:33
Lamakvolvo877, решили задачку.

Автор: Den1s 28.11.2006, 15:59
можно еще вот такsmile
Код

main()
{
       int i, N=-20;
       for(i = 0; i < N; i --)
              printf("*");
}


Автор: sergejzr 28.11.2006, 16:09
Модератор: Название темы должно отражать ее суть!

Автор: ShadeSt 28.11.2006, 18:52
Цитата(Den1s @  28.11.2006,  15:59 Найти цитируемый пост)
можно еще вот так

на начальных условиях получится, что 
Код

i = 0
N = -20

и проверка условия i < N заведомо ложь, по той причине, что нуль больше.

Автор: Den1s 29.11.2006, 11:39
ой, действительно, сглупил smile 

Автор: ressac 19.12.2006, 22:30
Цитата(Lamak @  24.11.2006,  15:07 Найти цитируемый пост)
ну вот одно решение


Код

main()
{
       int i, N=20;
       for(i = 0; -i < N; i --)
              printf("*");
}


тот минус что перед еденицой, это равносильно >>>  i*-1 ?  
я почему-то не понял smile

Автор: ano360 15.1.2007, 20:11
ошибочка не решил

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)