Для любителей Си

Байк и около него
Ответить
  • Автор
  • Сообщение
Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Для любителей Си

Сообщение TopIce » 2009-авг-29 01:11

Код: Выделить всё

#include "stdio.h"
 
void main()
{
  // Эта программа должна вывести   /
  // первые 8 чисел Фибоначчи:      /
  // 1, 1, 2, 3, 5, 8, 13, 21.      /
 
  // Определим первое и второе      /
  // значение ряда - это единицы:   /
  int first = 1, second = 1;
 
  // Сразу же выведем первое число: /
  printf("%d, ", first);
 
  // Цикл "делать следующее, пока   /
  // второе значение меньше 20".    /
  while (second < 20) { // проверили/
    // Следующее - это сумма        /
    // первого и второго. Вычислим  /
    int next = first + second;
 
    // Теперь надо записать второе  /
    // значение в первое, а следую- /
    // щее - во второе, так ведь ???/
    first = second;
    second = next;
 
    // Выведем на экран первое число/
    printf("%d, ", first);
  }
  // Выведем последнее значение ряда/
  printf("%d\n", second);
}
Теперь вопрос знатокам: почему эта программа выводит не ожидаемый ряд «1, 1, 2, 3, 5, 8, 13, 21», а неожиданный «1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 20»? Почему это проявляется не у всех?

Аватара пользователя
Сообщения: 714
Зарегистрирован: 2009-апр-26 10:20
Байк: Cube LTD Team
Способ связи: icq283655011
Откуда: Samara

Re: Для любителей Си

Сообщение scorpiones » 2009-авг-29 01:12

ээээ....форумом не ошибся ?
_________________
Citius, altius, fortius!

Аватара пользователя
Сообщения: 771
Зарегистрирован: 2009-июн-24 11:14
Байк: лисяпед
Реальное имя: Дмитрий
Способ связи: 8 9277 110823
Откуда: Самара

Re: Для любителей Си

Сообщение Dobry » 2009-авг-29 01:16

Scorpiones писал(а):ээээ....форумом не ошибся ?
Я уже заметил.
Сегодня он не в себе.
Либо налил что нибудь ни то.
Либо забил. :SARCASTIC:
Вот и прёт .
Мишь, ты тока не волнуйся - завтра отпустит :ROFL: :ROFL: :ROFL: :ROFL:
_________________
Не беги быстрей, чем думает голова.

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-29 01:18

Я и не волнуюсь, завтра вас ждет гиометрия, ибо сегодня у самого уже не хватает на нее мозгов

Аватара пользователя
Сообщения: 771
Зарегистрирован: 2009-июн-24 11:14
Байк: лисяпед
Реальное имя: Дмитрий
Способ связи: 8 9277 110823
Откуда: Самара

Re: Для любителей Си

Сообщение Dobry » 2009-авг-29 01:21

Top Ice писал(а):Я и не волнуюсь, завтра вас ждет гиометрия, ибо сегодня у самого уже не хватает на нее мозгов
:ROFL: :ROFL: :ROFL: :ROFL: :ROFL: :ROFL: :ROFL: :ROFL: :ROFL: :ROFL:
_________________
Не беги быстрей, чем думает голова.

Аватара пользователя
Сообщения: 771
Зарегистрирован: 2009-июн-24 11:14
Байк: лисяпед
Реальное имя: Дмитрий
Способ связи: 8 9277 110823
Откуда: Самара

Re: Для любителей Си

Сообщение Dobry » 2009-авг-29 01:22

Мишь.
у меня шато и сёмушка слабосалёная. а тебя то с чего?
_________________
Не беги быстрей, чем думает голова.

Аватара пользователя
Сообщения: 714
Зарегистрирован: 2009-апр-26 10:20
Байк: Cube LTD Team
Способ связи: icq283655011
Откуда: Samara

Re: Для любителей Си

Сообщение scorpiones » 2009-авг-29 01:24

хммм....уж не ту тему, о которой не стоит вслух говорить, ты имеешь ввиду ???

видимо завтра он будет загибать (гиометрически)
_________________
Citius, altius, fortius!

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-29 01:38

Scorpiones писал(а):ээээ....форумом не ошибся ?
велосипедист-математик

KIZ
Аватара пользователя
Сообщения: 558
Зарегистрирован: 2009-апр-29 15:37
Байк: Квазимонохромный
Реальное имя: Антон
Стиль катания: Воин Воскресенья
Способ связи: мобилка 8917-9пять2-07-сорок
Откуда: Куй бы шефф

Re: Для любителей Си

Сообщение KIZ » 2009-авг-29 09:42

Этот кусок кода работает. А для того, чтобы прога выдавала единицы надо выкинуть строчку
first = second;
Мб косяк синтаксиса был.

P.S. Не плодите сущностей, вынеси объявление next из цикла.
_________________
Изображение

Аватара пользователя
Сообщения: 122
Зарегистрирован: 2006-июн-24 06:07
Байк: Merida
Реальное имя: Vladimir
Откуда: Samara

Re: Для любителей Си

Сообщение Vovka » 2009-авг-29 10:08

Top Ice писал(а): // Эта программа должна вывести /
// первые 8 чисел Фибоначчи: /
// 1, 1, 2, 3, 5, 8, 13, 21. /
Какой-то новый стандарт Си? :-) Можно так комментарии объявлять?
Думал что только такой вариант для чисто сишных прог верен - /* 123.. */

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-29 13:46

Vovka писал(а):
Top Ice писал(а): // Эта программа должна вывести /
// первые 8 чисел Фибоначчи: /
// 1, 1, 2, 3, 5, 8, 13, 21. /
Какой-то новый стандарт Си? :-) Можно так комментарии объявлять?
Думал что только такой вариант для чисто сишных прог верен - /* 123.. */
в варианте /* 123.. */ будет закрытый комментарий, справа и слева от которого будет код
в варианте //* 123.. * будет открытый комментарий слева от которого будет код, а все что справо будет комментарием, до конца строки разумеется.

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-29 13:52

KIZ писал(а):Этот кусок кода работает. А для того, чтобы прога выдавала единицы надо выкинуть строчку
first = second;
Мб косяк синтаксиса был.

P.S. Не плодите сущностей, вынеси объявление next из цикла.
Зачем его выносить из цикла если и так все прекрасно работает, но не на всех компиляторах, связано это с вашей правельной догадкой, косяк синтаксиса, в каком месте я думаю вы уже догодались.

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

KIZ
Аватара пользователя
Сообщения: 558
Зарегистрирован: 2009-апр-29 15:37
Байк: Квазимонохромный
Реальное имя: Антон
Стиль катания: Воин Воскресенья
Способ связи: мобилка 8917-9пять2-07-сорок
Откуда: Куй бы шефф

Re: Для любителей Си

Сообщение KIZ » 2009-авг-29 14:00

Работает - не аргумент. Это семантическая ошибка, работает медленнее чем могло бы.
_________________
Изображение

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-29 14:12

Данный код вообще не работает в некоторых случаях, в каких?

Аватара пользователя
Сообщения: 122
Зарегистрирован: 2006-июн-24 06:07
Байк: Merida
Реальное имя: Vladimir
Откуда: Samara

Re: Для любителей Си

Сообщение Vovka » 2009-авг-29 17:49

Да, сейчас уточнил для себя... С99 позволяет одиночные комментарии //
И начала тоже как-то странное и забытое, хотя допустимое конечно...
void main()
Обычно так объявляют в С

Код: Выделить всё

int main(void)
с возвратом - return...
Хотя к рассматриваемой проблеме мной описанное не относится :PARDON:

vdd
Сообщения: 855
Зарегистрирован: 2006-сен-04 10:12
Байк: Смотря куда ехать
Стиль катания: Смотря куда ехать
Откуда: Самара

Re: Для любителей Си

Сообщение vdd » 2009-авг-31 11:37

/ щее - во второе, так ведь ???/
first = second;
?/ - экранирование CR/LF, вследствие чего "first = second;" уходило в комментарий?
По идее подобное экранирование должно работать только в строковых константах.

Аватара пользователя
Сообщения: 3985
Зарегистрирован: 2007-май-09 05:06
Стиль катания: выпас скотта
Способ связи: 8 927 758 57 38
Откуда: Самара

Re: Для любителей Си

Сообщение TopIce » 2009-авг-31 16:15

практически так. ??/ воспринималось компилятором как \ что означает перенос коментария на следующею строку, в результате "first = second;" уходило в комментарий

Сообщения: 8696
Зарегистрирован: 2004-июл-21 15:35
Байк: Sanderson Life
Реальное имя: Васек
Способ связи: +٧٩٠٦٣٣٧٠٠٠٧
Откуда: Тольятти

Re: Для любителей Си

Сообщение Danil » 2009-авг-31 16:42

А мы писали маленькие резидентники которые меняли ">" на "<" и наоборот в буфере экрана, и запускали на компьютере товарищей и потом смотрели как они их исправляют лихорадочно и тупят :)
Ответить

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

Сейчас этот форум просматривают: Google [Bot]