Простенькая задачка для программеров

Компьютеры, программы, периферия, коммуникации, интернет, программирование и т.п. Ранее назывался Hard-n-Soft.
Сообщение
Автор
ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 0 Сообщение ХЗ » 31 окт 2009 15:10

есть прога:

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

Нужно ЗАМЕНИВ ОДИН любой символ в ней сделать так, что бы она напечатала 20 "звездочек" :) Пробел является символом и может быть заменен. Желательно 3 варианта решения :)

gn2

№ 1 Сообщение gn2 » 31 окт 2009 16:31

int main(){ int i, N=20; for ( i = 19; i < N ; i-- ) printf("*"); }
праздную рождение внука, поэтому других вариантов пока не вижу.

gn2

№ 2 Сообщение gn2 » 31 окт 2009 16:34

Вигню написал это будет бесконечный цикл.

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 3 Сообщение Burg » 31 окт 2009 16:37

2: gn2:
Ну в мире мало чего бесконечного, но всяко больше 20 :rotate:

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 4 Сообщение BadBlock » 31 окт 2009 16:39

2: gn2:
>Вигню написал это будет бесконечный цикл.


К тому же два символа заменил, а не один.

gn2

№ 5 Сообщение gn2 » 31 окт 2009 16:41

int main(){ int i, N=20; for ( i = 0; i < N ; i++ ) printf("*");
Сдесь однако замено 2 символа. Ладно подумаем.

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 6 Сообщение BadBlock » 31 окт 2009 16:48

Ну, я бы написал так:

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

gn2

№ 7 Сообщение gn2 » 31 окт 2009 16:55

6: BadBlock: Ну да. А какие еше два варианта?

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 8 Сообщение ХЗ » 31 окт 2009 16:55

6: BadBlock:
первый правильный вариант.

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 9 Сообщение Burg » 31 окт 2009 16:59

Не хочу заводить компилятор, поэтому умозрительно:

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

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 10 Сообщение ХЗ » 31 окт 2009 17:02

9: Burg:
int main(){ int i, N=20; for ( i = 0;-i < N ; i-- ) printf("*"); }
второй правильный вариант

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

Не катит. 0 < -20 и ни одной итерации :)


Ищем третий :)

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 11 Сообщение BadBlock » 31 окт 2009 17:02

Ну, нате ещё один

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

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 12 Сообщение BadBlock » 31 окт 2009 17:03

9: Burg:

Апередил.

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 13 Сообщение ХЗ » 31 окт 2009 17:03

12: BadBlock:
у тебя есть возможность найти третий вариант :)

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 14 Сообщение BadBlock » 31 окт 2009 17:04

9: Burg:
>Не хочу заводить компилятор

А у меня его вообще нет, на сях писал крайний раз в институте. :D

gn2

№ 15 Сообщение gn2 » 31 окт 2009 17:04

9: Burg: Второй вариант не пройдет. 0<-20 цикл остановится.

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 16 Сообщение ХЗ » 31 окт 2009 17:05

14: BadBlock:
да какая разница то ? си или не си :)

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 17 Сообщение Burg » 31 окт 2009 17:05

Чую третий будет на каких-то побочных эффектах... и придется все-таки завести компилятор.

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 18 Сообщение ХЗ » 31 окт 2009 17:06

17: Burg:
без побочных, все по стандарту и все по честному.

gn2

№ 19 Сообщение gn2 » 31 окт 2009 17:44

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

BadBlock
Аватара пользователя
Благодарил (а): 1586 раз
Поблагодарили: 8126 раз

№ 20 Сообщение BadBlock » 31 окт 2009 17:47

19: gn2:

Надо заменить ОДИН символ.

gn2

№ 21 Сообщение gn2 » 31 окт 2009 17:52

Ладно. Пора спать.

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 22 Сообщение Burg » 31 окт 2009 18:27

0: X3:
тут жена говорит, что
int main(){ int i, N=20; for ( i =10; i < N ; i-- ) printf("*"); }

тоже решение, т.к. 20 звездочек она всяко напечатает, а в условиях не было ничего о том, что надо напечатать РОВНО 20 звездочек.

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 23 Сообщение ХЗ » 31 окт 2009 18:31

22: Burg:
не канает :) Кстати зачем тогда i =10 ? :)

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 24 Сообщение Burg » 31 окт 2009 18:43

23: X3:
Ну как же... надо же поменять ОДИН символ :D

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 25 Сообщение ХЗ » 31 окт 2009 18:44

24: Burg:
давай решение ищи :)

Burg
Аватара пользователя
Зок-модератор
Благодарил (а): 14 раз
Поблагодарили: 138 раз

№ 26 Сообщение Burg » 31 окт 2009 18:47

25: X3:
Некогда мне :D

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 27 Сообщение ХЗ » 31 окт 2009 18:48

26: Burg:
лох :)

gn2

№ 28 Сообщение gn2 » 31 окт 2009 19:31

int main(){ int i, N=20; for ( i = 0; i < N ;-i-- ) printf("*"); }
не могу уснуть

ХЗ
Экономный
Благодарил (а): 158 раз
Поблагодарили: 347 раз

№ 29 Сообщение ХЗ » 31 окт 2009 19:33

28: gn2:
и что это тебе дало ?

Вернуться в «Компьютерный форум»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей