Эй, так что в основном у меня есть эта проблема, где я пытаюсь поместить уравнение в функцию, однако, похоже, оно не устанавливает значение для функции и вместо этого не меняет его вообще.
Это симуляция добычи хищника, и у меня есть этот код внутри цикла for.
wolves[i+1] = ((1 - wBr) * wolves[i] + I * S * rabbits[i] * wolves[i]);
rabbits[i+1] = (1 + rBr) * rabbits[i] - I * rabbits[i] * wolves[i];
Когда я выполняю это, он работает как задумано и соответствующим образом изменяет значение обоих этих массивов, однако, когда я пытаюсь поместить его в функцию,
int calcRabbits(int R, int rBr, int I, int W)
{
int x = (1 + rBr) * R - I * R * W;
return x;
}
int calcWolves(int wBr, int W, int I, int S, int R)
{
int x = ((1 - wBr) * W + I * S * R * R);
return x;
}
И установить значения как таковые
rabbits[i+1] = calcRabbits ( rabbits[i], rBr, I, wolves[i]);
wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
Значения остаются такими же, какими они были, когда они были инициализированы, и это, похоже, не работает вообще, и я понятия не имею, почему. Я занимаюсь этим уже несколько часов, и, возможно, мне чего-то не хватает, но я не могу этого понять.
Любая помощь приветствуется.
Редактировать: Я понял, что параметры были неправильными, но я пробовал раньше с правильными параметрами, и он все еще не работал, просто случайно изменил его на неправильные параметры (при наведении курсора мыши на старую версию параметров)
Edit2: весь раздел кода это
days = getDays(); // Runs function to get Number of days to run the simulation for
dayCycle = getCycle(); // Runs the function get Cycle to get the # of days to mod by
int wolves[days]; // Creates array wolves[] the size of the amount of days
int rabbits[days]; // Creates array rabbits [] the size of the amount of days
wolves[0] = W; // Sets the value of the starting number of wolves
rabbits[0] = R; // sets starting value of rabbits
for(int i = 0; i < days; i++) // For loop runs the simulation for the number of days
{
// rabbits[i+1] = calcRabbits ( rabbits[i], rBr, I, wolves[i]);
// // //This is the code to change the value of both of these using the function
// wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
// This is the code that works and correctly sets the value for wolves[i+1]
wolves[i+1] = calcWolves(wBr, wolves[i], I, S, rabbits[i]);
rabbits[i+1] = (1 + rBr) * rabbits[i] - I * rabbits[i] * wolves[i];
}
Редактировать: я осознал свою ошибку, я поместил rBr и wBr как целые, и они были числами с плавающей точкой, которые были числами ниже 1, поэтому они автоматически конвертировались в 0. Спасибо sje