Я программирую в блоках кода в ОС Windows. Я должен был использовать некоторые из библиотек GSL в коде ниже, но я получаю сообщение об ошибке в строке 13, несовместимый тип для аргумента 1 «gsl_rng_uniformC программирование, векторная библиотека GSL, ошибка: несовместимый тип для аргумента 1 из 'gsl_rng_uniform'
double randomBR = gsl_rng_uniform(r)*360+6;
, и я не знаю, как это исправить. В сообщении об ошибке в файле gsl_rng.h отображается строка 150, в которой показано: «expected» const struct gsl_rng *, но аргумент имеет тип «double».
#include <stdio.h>
#include <gsl_vector.h>
#include <gsl_rng.h>
int main()
{
gsl_vector*vec=gsl_vector_alloc(100);
double z, max, min, r;
int k=100, i, pos;
for (i=0; i<k; i++){
double randomBR = gsl_rng_uniform(r)*360+6;
z=((int)(gsl_rng_uniform)(r)*360+6);
gsl_vector_set(vec, i, z);
}
max=gsl_vector_max(vec);
pos_vector_max_index(vec);
min=gsl_vector_min)(vec);
pos_vector_min_index(vec);
if (max == 360)
{
printf("Max number generated in box %d", pos);
}
if (max < 366)
{
printf("Max number is %f, position %d", max, pos);
}
return 0;
}
Используя значение неинициализированной переменной, имеющей автоматический срок хранения, который является неопределенным, вызывает * неопределенное поведение *. – MikeCAT