Объясните строки кода
#include <stdio.h>
#include <iostream> #include <ctime> int fun () { static unsigned int num = 0; num++; return num % 2; } int myrand () { int random = rand () % RAND_MAX; int mynum = 0; for (int i = 0; i < random; i++) { mynum += fun (); } return mynum; } int main () { srand (time (NULL)); for (int i = 0; i < 30; i++) printf ("%d\n", myrand ()); return 0; } |
слушаю, объясняйте...
|
Вложений: 1
Цитата:
num++; //увеличиваем значение return num % 2; //возвращаем число и ... int myrand () { int random = rand () % RAND_MAX; //выводим числа рандомна int mynum = 0; for (int i = 0; i < random; i++) // ... { mynum += fun (); } return mynum; } int main () { srand (time (NULL)); for (int i = 0; i < 30; i++) printf ("%d\n", myrand ()); return 0; } |
Вы и сами все прекрасно понимаете, зачем что-то объяснять :)
|
Цитата:
и return num % 2; и тут for (int i = 0; i < 30; i++) |
Цитата:
А у каждого числа имеется переменная? А почему она не будет изменяться? Она же переменная... ;) Почитайте конструкцию оператора цикла For для Си и всё поймете. |
Цитата:
Цитата:
Цитата:
|
Хоть я и не от мира сего, но позвольте дать ВАМ ещё один совет.
Р. Лафор "Объектно-ориентированное программирование в С++" Почитайте и ВЫ найдёте ответы на свои вопросы. |
Цитата:
|
Цитата:
Код:
int fun () { - будет инкрементироваться, сохраняя своё значение между последовательными вызовами fun() - именно из-за объявления static - а возвращаемое fun() значение будет чередоваться через каждые 2 последовательных вызова ... примерно вот так: 1, 0, 1, 0, 1, 0 ... и так далее. |
Часовой пояс GMT +4, время: 18:42. |
Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.