При вызове функции fork() создается новый процесс , который является копией родительского . Во втором случае родительский процесс завершается переводом строки .Я прав ?
В сознательных действиях должен присутствовать существенный неалгоритмический компонент.
Roger Penrose,The Emperor's New Mind
v04bvs, чортов сотонист....
только задачки такие, собственно, к программированию отношения не имеют.
можно вполне себе неплохо программировать, так за всю жизнь и не узнав конкретно этой особенности реализации I/O.
а вообще, надо юзать fflush (:
И что? Ты хочешь сказать, например, что как решать дифференциальные уравнения в частных производных не написано в учебниках?
Это простенькие задачки, для разминки. Я что, обещал глобальную проблему что ли?..
в С++ порядок вычисления аргументов функций определяется реализацией
там вне зависимости от порядка вычисления аргументов есть две модификации переменной без прохождения точки следования. а если ещё и про аргументы вспомнить, то это дважды некорректный код (:
nerezus
не учи людей плохому.
за указание индексов в стиле index[array] надо отрубать руки. а за использование триграфов в коде - выдавать 10 МСД.
Uncle_Theodore
задача подразумевает решение.
знание одного конкретного факта - не есть решение.
если не ошибаюсь, то через int main() можно (и даже нужно) возратить exitcode программы, а через void естесственно нельзя, и если не путаю его запретили использовать. хотя древние компиляторы могут собирать с void.
вроде как старый прикол, но нужно было что ли добавить что с -trigraphs собирать нужно, а то он так просто предупреждение показывает при сборке и 10 раз выводит (:
Старая задачка, обычно на школьных районных олимпиадах ее дают:
Имеется матрица (n*m) заполненная 1 и 0. Единицы - это острова море, а нули - море. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Найти количество островов.
P.S. Естественно могут быть "гнутые" и "дырявые" острова.
P.P.S. Как не странно, но решают ее редко, хотя она легкая.
Старая задачка, обычно на школьных районных олимпиадах ее дают:
Имеется матрица (n*m) заполненная 1 и 0. Единицы - это типа море, а нули - острова. Если единицы находятся рядом по горизонтали или вертикали - то они образуют один остров. Найти количество островов.
P.S. Естественно могут быть "гнутые" и "дырявые" острова.
P.P.S. Как не странно, но решают ее редко, хотя она легкая.
Вариант решения от измученного нарзаном Дяди Федора (честно, сам придумал!):
1. Считаем общее количество единичек (они -- острова), пусть будет N.
2. Заводим переменную hit = 0;
3. Обходим массив.
если (i,j)-й элемент есть 1, то
если (i+1,j) элемент есть 1, то hit = hit+1;
если (i,j+1) элемент есть 1, то hit = hit +1;
4. Количество островов равно N - hit;
Диагональные считать не будем.
Хотя алгоритм от этого не изменится
тупой вариант в голову приходит - надо просто пронумеровать острова. т.е. идем по строке, встречам единицу, осматриваемся - вверх и назад, (i-1,j) (i,j-1) если там есть не-ноль, то меняем эту текущую единицу этим не-нулем. если нет прибавляем к счетчику островов 1 и пишем значение счетчика вместо текущей единицы. в итоге счетчик островов будет содержать количество островов. вроде
Либо создавать массивчики с индексами единичек когда появится единичка, не связанная с элементами массива через ( j==mas_j, mas_i == i+1 или mas_i==i, mas_j == j+1. И какой-нибудь counter этих массивов. Хотя это и мега тупой алгоритм, особенно в плане памяти, но работать должен, хотя писать лениво.