Actuellement, j'essaie de remplir un tableau de taille num avec des valeurs aléatoires. Pour ce faire, j'ai besoin de créer deux fonctions:Remplissage d'un tableau avec des nombres aléatoires
1: Ecrire une fonction (* createdata) qui alloue un tableau dynamique de num double valeurs, en initialisant les valeurs à 0.0.
2: Ecrivez une fonction différente qui remplira un tableau de valeurs doubles avec des valeurs aléatoires générées à l'aide de la fonction rand().
Voici ma tentative d'écrire la façon dont les fonctions fonctionnent (hors main()):
double *createdata(int num)
{
int i = 0;
double *ptr;
ptr = (double *)malloc(sizeof(double)*num);
if(ptr != NULL)
{
for(i = 0; i < num; i++)
{
ptr[i] = 0.0;
}
}
}
double gendata(int num)
{
createdata(num);
int j = 0;
for(j = 0; j < num; j++)
{
ptr[j] = rand();
}
}
Cependant, je sais qu'il ya quelque chose certainement mal avec ce qui précède.
Ce que je voudrais est qu'une fois que je l'ai appelé les deux fonctions principales, j'ai généré un tableau de taille num qui est rempli de nombres aléatoires.
Un petit indice: il n'y a pas de déclaration de retour dans l'une de vos fonctions. – Howard
@Howard Si j'ajoute return (ptr) à la fin de ma fonction * createdata cela ferait-il l'affaire? –
Votre fonction 'gendata()' ne correspond pas à la spécification _populate un tableau de 'double' avec des valeurs aléatoires; il correspond à la spécification _generate et remplit un tableau de 'double' avec des valeurs aléatoires. Vous pouvez réviser la spécification ou le code; dans l'ensemble, la révision du code conduira à une fonction plus utile. Vous n'avez alors pas besoin de retourner quelque chose de 'void gendata (double * array, int num)'. –