2011-01-22 3 views
-2

Можно создать дубликат:
Not able to solve the puzzle regarding this code…головоломка на операторе цикла

Ниже приведен фрагмент кода C, чье намерение состояло в том, чтобы напечатать знак минус 20 раз. Но вы можете заметить, что не работает.

#include <stdio.h> 
    int main() 
    { 
     int i; 
     int n = 20; 
     for(i = 0; i < n; i--) 
      printf("-"); 
     return 0; 
    } 

Хорошо фиксирующий вышеуказанный код является прямым. Чтобы сделать эту проблему интересной, вы должны исправить выше код, изменяя только один символ

+1

Для определенных значений "fix". Надеюсь, что «правильное» решение не пройдет проверку кода. –

+1

Нет, вам нужно изменить его на два символа, иначе вы не получите идиоматическую программу C, а надуманный бит хакеров. –

+1

@larsmans: отсюда и «головоломка», чтобы быть справедливым. –

ответ

4

One:

for(i = 0; i < n; n--) 
     printf("-"); 

Два:

for(i = 0;-i < n; i--) 
     printf("-"); 

Три:

for(i = 0; i + n; i--) 
     printf("-"); 
5

1)

for(i = 0; i + n; i--) 
    printf("-"); 

2)

for(i = 0; i < n; n--) 
    printf("-"); 

3)

for(i = 0; -i < n; i--) 
    printf("-"); 
+0

4 не работает – ybungalobill

+0

Извините! Удалено .. –

+0

в '-i Nawaz

0

Вы можете изменить его так, что вместо i--, вы N-,.

Смежные вопросы