Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Кто же все-таки лучше знает СИ? ;)
Молодая Русь > Общий раздел > Общение
BrainWorker
Цитата(Б. Евгений В. @ Jul 4 2005, 14:59)
#include <stdio.h>

main()
{
printf("Молодец. Моя твоя понимай )))\n");
return (0);
}
*

У тя будет compiler error, поскольку функция main ничё не вертает. А судя по алгоритму, она у тя должна вертать int.
Дмитрий И.
Цитата(BrainWorker @ Jul 4 2005, 20:50)
У тя будет compiler error, поскольку функция main ничё не вертает. А судя по алгоритму, она у тя должна вертать int.
*

Это смотря в каком компиляторе компилировать wink.gif !
Тут у нас на фоуруме все по-другому не так как везде wink.gif , да-да, и компиляторы другие wink.gif !
В. Евгений Б.
Цитата(BrainWorker @ Jul 4 2005, 21:50)
У тя будет compiler error, поскольку функция main ничё не вертает. А судя по алгоритму, она у тя должна вертать int.
*


Сергей, советую тебе хорошо выспаться и посмотреть на этот тривиальный кусочек кода внимательнее )
BrainWorker
Цитата(Б. Евгений В. @ Jul 5 2005, 9:20)
Сергей, советую тебе хорошо выспаться и посмотреть на этот тривиальный кусочек кода внимательнее )
*

Я те говорю!!! Функция ничё не вертает судя по прототипу, а не телу.
Прототип надо было написать так

Код
int main()
{
<тело>
}


a не

Код
main()
{
<тело>
}


P.S. Сам посмотри на свой прототип, и лучше сам выспись smile.gif
Natascha
Ребята, может вам отдельную тему заведете, где будете технические моменты обсуждать. А то уже не первая тема переходит плавно на фотографии и програмирование smile.gif
BrainWorker
Цитата(Natascha @ Jul 5 2005, 13:05)
Ребята, может вам отдельную тему заведете, где будете технические моменты обсуждать. А то уже не первая тема переходит плавно на фотографии и програмирование  smile.gif
*

Я бы сделал. Но я не модератор, чтобы перенести туда посты из этой темы.
В. Евгений Б.
Цитата(BrainWorker @ Jul 5 2005, 12:45)
P.S. Сам посмотри на свой прототип, и лучше сам выспись 
*


В ANSI C если для функции явно не указан тип возвращаемого значения, то по умолчанию предполагается, что это int.
BrainWorker
Да, ты прав. Но всё же лучше явно указывать тип вертаемого значения, чтобы не было путаницы.
Раньше на чистых сях кодил, а ваще я плюс-плюснутый программер smile.gif
Дмитрий И.
Эта тема создана специально для желающих, которые хотели бы вдоволь поговорить о воросах программирования, чтобы им ни кто не мешал, и чтобы все-таки выяснить: кто же СИ знает лучше, а кому - лучше поспать wink.gif biggrin.gif biggrin.gif .
BrainWorker
О! Ура!
Наконец-то можно оторваться!

Вот такой вопросик всем программерам форума. На сколько я понимаю, кроме меня еще и Б.Евгения В. программит. А мож и еще кто. Короче, народ, присоединяйтесь wink.gif

Ну так вот. Простенький вопросик, как говорится на засыпку...

Из серии программирования в UNIX

Код
int main()
{
  if (fork())
     printf("1\n");
  else
     printf("2\n");
}


Что будет напечатано на экране??? smile.gif

P.S. fork() создает детский процесс - копию родительского.
BrainWorker
Эх, так хотелось написать то, что я сейчас пишу здесь, в теме "Ложь во спасение", но ладно, напишу здесь, а то меня опять обвинят, что я говорю не в тему smile.gif wink.gif

Ложь - это когда что-то равно нулю smile.gif
BrainWorker
А вот еще задачка.... smile.gif

Знаете ли алгоритм, обменивающий значения переменных без использования мозгов - ни дополнительной переменной, ни стека, ни расширения размера переменных, т.е. ваще не задействуя мозги ??? smile.gif
Nikolas
Цитата(BrainWorker @ Jul 6 2005, 12:43)
Код
int main()
{
  if (fork())
     printf("1\n");
  else
     printf("2\n");
}


будет напечатано:
Код
2
1

ну или:
Код
1
2


Вообщето в линуксе утверждение что ложь-это когда что-то равно нулю, не совсем верно, форк возвращает ноль при нормальном выполнении как и многие другие функции. tongue.gif

А по поводу второй задачи:
Код
x=x+y
y=x-y
x=x-y

Но будет работать только с численными переменными, а если что-то другое, то наверно неполучиться. wink.gif
BrainWorker
На счет задачи с форками, всё верно. smile.gif

А вот обмен значений переменных - не верно!!! Твой алгоритм будет не всегда рабоать даже с численными значениями. Подумай хорошенько wink.gif
Дмитрий И.
Ну, вот, не выдержал и тоже подключаюсь к разговору wink.gif .
Цитата(BrainWorker @ Jul 7 2005, 18:38)
А вот обмен значений переменных - не верно!!! Твой алгоритм будет не всегда рабоать даже с численными значениями. Подумай хорошенько
*

Это почему же?
Из-за возможного переполнения разрядности?
Если программная среда не будет генерить ошибку - то все будет работать даже и при переходе через 0 wink.gif .
Или, можно использовать побитную операцию XOR - исключающее ИЛИ.
А:=A XOR B
B:=B XOR A
A:= B XOR A
BrainWorker
Цитата(Дмитрий И. @ Jul 7 2005, 19:11)
А:=A XOR B
B:=B XOR A
A:= B XOR A
*

А вот это соверешенно верно. Это будет работать всегда и даже с указателями, если их предварительно реинтерпретировать к числам. smile.gif
Дмитрий И.
Интересно, то, что существуют различные алгоритмы, которые работают верно, но, вот понять и объяснить принцип их работы, лично я, затрудняюсь.
Например, алогрим деления двух чисел реализованный только на арифметических и логических операциях (на ассемблере). И еще есть несколько других алгоритмов.
BrainWorker
Цитата(Nikolas @ Jul 7 2005, 17:47)
Вообще-то в линуксе утверждение что ложь-это когда что-то равно нулю, не совсем верно, форк возвращает ноль при нормальном выполнении как и многие другие функции. tongue.gif
*

К сведению. Функции, возвращающие ноль при нормальном выполнении, на самом деле возращают число - код ошибки, а не булево значение. Так что возвращенный ноль в данном случае не имеет ничего общего с ложью. tongue.gif
Так что я не ошибся. wink.gif
3aHyga
Цитата(BrainWorker @ Jul 6 2005, 22:01)
Знаете ли алгоритм, обменивающий значения переменных без использования мозгов - ни дополнительной переменной, ни стека, ни расширения размера переменных, т.е. ваще не задействуя мозги ??? smile.gif
*


x ^= y ^= x ^= y;
BrainWorker
Цитата(3aHyga @ Jul 18 2005, 12:48)
x ^= y ^= x ^= y;
*

Это то же самое, что и выше, но записано в одну строчку. Оригинально! Мне понравилась такая запись. smile.gif
FanTom
BrainWorker, давай еще задачки, а то я все старое пропустил!
BrainWorker
Пожалуйста smile.gif

Как обнулить только младший бит числа, в одну команду, если размерность числа не известна (т.е. или 8 бит, или 16 бит, или 32 бита, или 64 бита) ?
Nikolas
Может так?
x &= x - 1;
BrainWorker
Цитата(Nikolas @ Jul 21 2005, 14:49)
Может так?
x &= x - 1;
*

Совершенно верно smile.gif

Опять Fantom опоздал smile.gif
3aHyga
Цитата(BrainWorker @ Jul 19 2005, 22:54)
Это то же самое, что и выше, но записано в одну строчку. Оригинально! Мне понравилась такая запись.
*

Ну это Я знаю что это тоже то. Просто я так обычно записываю!)))
Светлячок
Вопрос ко всем компьтернограммотным!
У меня к домашнему компу прицепилась какая-то бяка. Каждый раз как в инет выхожу, вылезает сайт знакомств, достал меня уже бесконечно! Как от него отделаться?!
Nikolas
Самое легкое - браузер сменить или винду переставить.

У нас в комнате в свое время тоже подобная прога стояла, только более интересные сайты открывала)))

Вообще она скорее всего где-то в реестре прописана, можно самому удалить, а можно в инете поискать, патички найти.
BrainWorker
Ты подцепила червя, который подправил тебе реестр.
Вся информация об Internet Explorer хранится в этих ветвях реестра:

HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer
HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer

Посмотри и подправь, особенно раздел Main каждой из ветвей.

Всё поняла? smile.gif
Дмитрий И.
Цитата(Nikolas @ Nov 21 2005, 20:43)
Самое легкое - браузер сменить или винду переставить.
*

А еще не забудь брандмауэр включить для защиты от атак, хотябы встроенный брандмауэр в windows: свойства сетевого подключение/ вкладка дополнительно/ и поставить галочку - защитить мое подключение к Интернету.
Или какую-либо программку типа "антихаккер".

Добавлено автором Дмитрий И. в [mergetime]1132593434[/mergetime]
Ну и еще не помешает установить антивирус для верности.
Светлячок
Антивирус у меня есть. А из всего, что вы писали, я поняла только, что мне надо в настройках что-то менять. Не могли бы вы пошагово расписать, куда зайти и что сделать? А то я так не понимаю, что такое брандмауэры, какие-то реестры, ветви... sad.gif
Nikolas
Запускаешь програму regedit, там в левой части будет сам реестр. А в правой - значения ключей, которые и надо смотреть. Там выбираешь те ключи ну и там еще какие от них идут, которые BW написал, а потом что считаешь относится к проге вредоносной - удаляешь, только смотри лишнего не удали. wink.gif

Легче винду переставить tongue.gif
Светлячок
Я только что все это сделала, и ничего не помогло.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2026 IPS, Inc.