Back
OtherItalian

Esercizio eliminare duplicati array

Study material for Programmazione, shared by the Studwiz community and reviewed by moderators.

ProgrammazioneOther

Document information

What's included in this study material

Study material for Programmazione, shared by the Studwiz community and reviewed by moderators.

Import quality: text was extracted directly from the original document.

Extracted content from the document

Representative passages recognised in different parts of the material. The full extracted text remains available to search, while this compact preview makes the page easier to read.

Page 1

Esercizio “elimina duplicati array” Funzione che elimina duplicati da un array ordinato: int eliminaDuplicati (int a[], int n) /* Vettore ordinato */ { int i; int k = 1; for (i = 1; i < n; i++) /* per tutti gli elementi a partire dal secondo */ { if (a[i] != a[i-1]) /* se nuovo elemento (non copia del precedente) */ { a[k] = a[i]; k++; } } return k; } La stessa funziona, per un array non ordinato: typedef enum {FALSO, VERO} boolean; int eliminaDuplicati (int a[], int n) /* Vettore NON ordinato */ { int i, j; boolean duplicato; int k = 1; for (i = 1; i < n; i++) /* per tutti gli elementi a partire dal secondo */ { duplicato= FALSE; for (j=o; j<i; j++) { if (a[i] == a[j]) duplicato = TRUE; } /* se il nuovo elemento non era già presente nell'array destinazione, */ /* lo aggiunge */ if (!duplicato) { a[k] = a[i]; k++; } } return k; } Il programma principale: #include <stdio.h> void main() { int b[] = { 1, 3, 3, 3, 5, 7, 7, 9, 9}; /* inizializzazione statica */ int dimb = 9; int i, nuova_dimb; /* stampa vettore inserito */ for (i = 0; i < dimb; i++) printf("%d ", b[i]); printf("\n"); nuova_dimb = eliminaDuplicati(b, dimb); /* stampa vettore dopo la chiamata */ for (i = 0; i < nuova_dimb; i++) printf("%d ", b[i]); printf("\n"); }

Preview

First page of the document.

First page: Esercizio eliminare duplicati array