Я передаю три цифры в моей программе, позволяет сказать 6 2 8
я функция, которая генерирует случайное число в интервалах этих чисел, напримерУказатели изменения значения переменных
1 number = 0<= number <=6
2 number = 0<= number <=2
3 number = 0<= number <=8
я объявленную функцию для него, который работает отлично
double random(int a)
{
srand((unsigned int)time(NULL));
double rnd = (((double)rand()/(double)(RAND_MAX)) * a);
return rnd;
}
тогда я Конечное число позволяет сказать 10
то, что я пытаюсь сделать, это случайное число от генерации интервала первых двух чисел = от
1 number = 0<= number <=6
2 number = 0<= number <=2
им делать это так
podiel_one=random(m_one);
podiel_two=random(m_two);
podiel_three= getlast(m_three,podiel_one,podiel_two,m_final,m_one,m_two);
(я сканирование сказал числа в переменных так m_one = 6, m_two = 2, m_three = 8, m_final = 10) , а затем я найти последний номер с простой математикой
podiel_three = m_final-(podiel_one + podiel_two)
это работает отлично, но я хочу, чтобы зафиксировать случай, когда окончательное число обыкновения быть от своего интервала (0 < = число < = 8) я имею м де-функция для этого
double getlast(double m_three,double* podiel_one,double* podiel_two,double m_final,double m_one,double m_two){
double testt=(podiel_one+podiel_two);
double tmp_three=m_final-testt;
if(tmp_three>=0 && tmp_three <= m_three){
return tmp_three;
}
else{
*podiel_one=random(m_one);
*podiel_two=random(m_two);
getlast(m_three,podiel_one, podiel_two,m_final,m_one,m_two);
}
return 1;
}
эта функция делает следующее = если окончательное число разве из своего интервала, то присвоить новое случайное значение в переменные и сделать математику снова и снова до тех пор, пока указанное число от интервала. Проблема заключается в том, что, когда я пытаюсь скомпилировать его бросает ошибку и предупреждений/ошибок
invalid operands to binary + (have 'double *' and 'double *')
|error: incompatible type for argument 3 of 'getlast'
error: incompatible type for argument 2 of 'getlast
note: expected 'double *' but argument is of type 'double'|
Будучи довольно новое в языке C им потерял прямо сейчас, как я могу это исправить и сделать свою программу работы?
Try '* podiel_one + * podiel_two' –
' testt' будет результат сложения двух указателей.сложение чисел, которые представляют собой произвольные адреса памяти, в основном бесполезно. –