Stocker et imprimer des nombres aléatoires dans un tableau en C
J'ai besoin de stocker des nombres aléatoires entre 500 et 600 pour un tableau à l'aide d'un pointeur et ensuite imprimer ces chiffres. J'obtiens une erreur de segmentation...core dump, je ne comprends pas vraiment ce que cela signifie. L'erreur se produit après l'instruction printf ("%15d\n", aPtr[i]);
int main(){
int size;
int j, i;
int temp;
int sum = 0;
printf("Enter size of array");
scanf("%d", &size);
int array[size];
int *aPtr = malloc(sizeof(int) * size);
for (i = 0; i <= size; i++){
srand(time(NULL));
aPtr[i] = rand() % 500 + 100;
printf("%15d\n", aPtr[i]);
- L'église, ce n'est pas une bonne idée de faire de gros changements à votre question, ce qui invalide les réponses que les gens ont donné. Par tous les moyens d'ajouter des détails, à condition de suivre cette directive. J'ai roulé la changements.
- Noté! Désolé, les nouvelles de ce site, en essayant de parole à mes questions correctement 🙁
Vous devez vous connecter pour publier un commentaire.
vous devez appeler srand ( qui initialise le générateur de nombre aléatoire ) qu'une seule fois. Déplacez-le pour. Et si vous voulez des nombres aléatoires entre 500 et 600, vous avez besoin de générer entre 0 et 100 ( rand() % 101), puis ajouter 500.
i <= size;
devrait êtrei < size;
Si vous avez un tableau de 50 éléments, les index sont [0,49].
Vous devez appeler
srand
avant vous entrez dans la boucle.Comme il est maintenant, vous obtiendrez une longue séquence de nombres identiques parce que vous êtes à la réinitialisation du générateur de nombre aléatoire pour la même graine à chaque fois (en supposant que le temps ne change pas, ce qui est probable). En outre, si vous souhaitez que les numéros entre 500 et 600 inclusive, votre formule est mal. Essayez de cet extrait: