array random

Creiamo altri esempi di funzioni che generano array random in C.

Primo esempio di array random con le funzioni in C

Sviluppare un programma che genera e visualizza due array random tramite l’uso di funzioni. Dunque creare una funzione che generi i due array e una funzione che li visualizzi.

Quindi iniziamo creando la nostra funzione random_array, che riceve un array passato per indirizzo. Questa funzione genera un array di numeri random compresi tra 1 e 10 e restituisce un intero, il numero degli elementi.

Dopo creiamo la funzione print che stampa un array. Questa funzione ha come parametri formali la dimensione dell’array e l’array passato per indirizzo e non restituisce nulla.

Successivamente nel main dichiariamo i due vettori a e b e le due dimensioni n1 ed n2. Dopo invochiamo le funzioni random_array e print.

Ecco dunque il listato completo di array random con le funzioni in C.


#include <stdio.h>
#include <time.h>

#define N 10


int random_array(int *v1) {
  	int i, n;

  	srand((unsigned) time(NULL));
  
	do {
		printf("Quanti elementi?: ");
		scanf("%d", &n);
	} while (n<0 || n>N);
	
  	for (i=0; i<n; i++) 
    	     v1[i] = rand()%10+1;

  	return n;
}


void stampa_array(int n, int v[]) {
  	int i;

  	for (i=0; i<n; i++) {
   		printf("%d\n", v[i]);
  	}
}


int main(void) {
  	int n1, n2, a[N], b[N];

  	n1 = random_array(a);
  	stampa_array(n1, a);
  	
  	printf("\n");
  	n2 = random_array(b);
  	stampa_array(n2, b);
  	
  	return 0;
}

Secondo esempio di array random con le funzioni in C

Realizziamo un secondo esempio, sempre con i numeri random.

Sviluppare un programma che genera e visualizza due array random tramite l’uso di funzioni. Sommare i due array e visualizzare un nuovo array che contiene la somma di ciascun elemento.

In pratica dati due array ad esempio a[5] e b[5], l’array c[5] sarà così composto:

c[0]=a[0]+b[0]; e così via.

Creiamo dunque una funzione sum che prende come parametri formali i due array passati per indirizzo. La funzione è molto semplice da implementare, infatti con un semplice ciclo si sommano gli elementi: c[i] = a[i] + b[i].

#include <stdio.h>
#include <time.h>

#define N 10

void random_array(int *v) {
  	int i;
	srand((unsigned) time(NULL));
	
  	for (i=0; i<N; i++) 
		v[i] = rand()%10+1;
}

void *sum(int *a, int *b){
  int i, *c; 

  for(i=0; i<N; i++) {
    	c[i] = a[i] + b[i]; //somma gli elementi dei due vettori
    	printf("%d\t", c[i]);
  }
}

void stampa_array(int *v) {
  	int i;

  	for (i=0; i<N; i++) {
   		printf("%d\t", v[i]);
  	}
}

int main(void) {
  	int i, a[N], b[N];
  	char invio;

	printf("\nGenero il primo array: ");
  	random_array(a);
  	stampa_array(a);
  	
  	printf("\n\nInvio per generare il secondo array");
  	scanf("%c", &invio);
  	
  	printf("\nGenero il secondo array: ");
  	random_array(b);
  	stampa_array(b);
  	
  	printf("\n\nLa somma dei due array: ");
  	sum(a,b);
  	
  	return 0;
}

Potete anche consultare altre lezioni sugli array: generare numeri casuali senza ripetizioni e array con numeri random.

Chiaramente questi sono solo dei semplici esempi, più avanti approfondiremo l’argomento.

Alcuni link utili

Indice argomenti linguaggio C

Realizzare un menù di scelta in C

Strutture complesse in C

Esercizio sulle struct in C

Typedef struct C

Somma elementi diagonale principale di una matrice

Come sommare gli elementi della cornice esterna

Come sommare due matrici

Matrice trasposta

Prodotto tra matrici

Ricerca elementi in una matrice

Quali metodi per inserire dati in una matrice

Tavola pitagorica in C

Array multidimensionali

Quick sort in C

Selection sort in C

Merge sort in C

Insertion Sort in C

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *