Salve, devo fare questo programma: Scrivere un programma in linguaggio C che legge N numeri interi da tastiera e li memorizza in un vettore.
Il numero N viene inserito dall'utente ed è minore di 20. Il programma deve generare un secondo vettore
che compatta i numeri del primo vettore. In particolare:
-ogni numero che compare ripetuto nel primo vettore, deve essere scritto una volta nel secondo vettore,
-ogni numero uguale a zero nel primo vettore non deve comparire nel secondo vettore.
Il programma deve visualizzare il contenuto del secondo vettore. Ad esempio, si supponga che N=8 e si
consideri la sequenza di numeri: 1 18 3 0 24 3 6 0 inseriti da tastiera. Il programma deve visualizzare
1 18 3 24 6.
Ma sto avendo alcuni problemi con il codice, non riesco a capire cosa non vada. Questo è il codice:
#include<stdio.h>
#define N 20
int comp(int vett1[], int n){
int vett2[N], i, j=0, k;
int stop; //se stop=1 non devo inserire, se stop=0 devo inserire
for(i=0;i<n;i++){
stop=0;
for(k=0;k<j;k++){
if(vett1[i]==vett2[k] || vett1[i]==0){
stop=1;
}
if(stop==0){
vett2[j]=vett1[i];
j++;
}
}
}
printf("il secondo vettore e':");
for(i=0;i<j;i++){
printf("%d\n",vett2[i]);
}
}
void main(){
int vett1[N], i, n;
printf("Inserire la quantita' di numeri nel vettore (minore di 20):");
scanf("%d",&n);
printf("inserisci i numeri del vettore:");
for(i=0;i<n;i++){
scanf("%d",&vett1[i]);
}
comp(vett1, n);
}
Il secondo vettore mi esce vuoto..