In questa lezione implementeremo un semplice algoritmo per la ricerca di elementi uguali in un array.
Per implementare questo algoritmo utilizziamo le funzioni che poi richiameremo nella funzione principale main.
Quindi realizziamo una prima funzione che permette l’inserimento dei numeri interi nell’array.
Dopo implementiamo una funzione per la stampa degli elementi dell’array.
Poi implementiamo la funzione di ricerca che quando individua elementi uguali li visualizza in output.
Ricerca di elementi uguali in un array – Procedimento
La ricerca funziona in questo modo:
Si prende il primo elemento e si confronta con il secondo, dopo con il terzo e così via fino all’ultimo.
Dopo si prende il secondo elemento e si confronta con il terzo, e così via fino all’ultimo.
Si procede fino al penultimo elemento che verrà confrontato solo con l’ultimo.
Al termine si confronta la variabile che tiene traccia del conteggio e si visualizza in output il messaggio opportuno.
Ecco dunque il listato completo in linguaggio C dell’algoritmo per la ricerca di elementi uguali in un array.
#include <stdio.h> #include <stdlib.h> //Ricerca di elementi uguali in un array #define MAX 100 int insert_array(int a[]){ int i, n; printf("quanti elementi vuoi inserire?:"); scanf("%d", &n); for(i=0;i<n;i++) { printf("inserisci elemento %d:", i); scanf("%d", &a[i]); } return(n); } int stampa_array(int a[], int n){ int i; for(i=0;i<n;i++) { printf("%d\t", a[i]); } return; } //ricerca elementi uguali int ricerca_uguali(int a[], int n){ int i, j, f; f=0; for(i=0;i<n-1;i++) { j=i+1; while((j<n) && (f==0)) { if(a[i]==a[j]) { printf("\nelementi uguali trovati: %d \t%d", a[i], a[j]); f+=1; } j++; } } if(f==0) printf("\nnon ci sono uguali"); else printf("\nci sono uguali"); return; } int main(){ int n, a[MAX]; n=insert_array(a); stampa_array(a, n); ricerca_uguali(a, n); }
Chiaramente questo è solo un semplicissimo esempio,, più avanti proporrò altri esercizi sugli array.
Alcuni link utili
Allocazione dinamica della memoria con malloc
Esercitazione sulle struct in C
Realizzare un menù di scelta in C
Come sommare gli elementi della cornice esterna