Oggi pongo un altro quesito....
Ho creato un programma che stampa un array con elementi definiti dall'utente e cerca un elemento scelto dall'utente se è ripetuto nell'array.
Dovrei però far stampare anche la posizione della prima ripetizione nell'array qualora ci fosse... Come posso fare?
Es. V={1,2,5,8,1,9,0} Numero da cercare 1, L'elemento 1 è ripetuto nel vettore. Posizione della prima ripetizione: 4
#include <stdio.h>
#include <stdlib.h>
#define max 30
void leggi_v (int v1[], int dim) {
int i;
printf ("Inserire gli elementi del vettore\n\n");
for (i=0; i<dim; i++) {
printf ("Elemento %d: ", i+1);
scanf ("%d", &v1[i]);
}
}
void stampa_v (int v1[], int dim) {
int i;
printf ("Il mio vettore sara' composto dai seguenti numeri \n");
for (i=0; i<dim; i++) {
printf ("Elemento n.%d: %d\n", i+1, v1[i]);
}
}
void cerca_rip (int v1[], int dim) {
int trovato = false;
int i = 0;
int a;
printf ("Inserire l'elemento che si desidera controllare: ");
scanf ("%d", &a);
while ((i<dim) && !trovato) {
if (v1[i] == a)
trovato = true;
else
i++;
}
if (trovato) {
printf ("L'elemento %d e' ripetuto nel vettore\n\n", a);
printf ("L'elemento si trova in posizione: %d", v1[i]); //QUI SORGE IL PROBLEMA
}
else {
printf ("Non ci sono ripetizioni.");
}
}
typedef int vet1[max];
int main() {
vet1 v1;
int dim;
printf ("Inserisci il numero di elementi dei vettori: ");
scanf ("%d", &dim);
leggi_v (v1, dim);
stampa_v (v1, dim);
cerca_rip (v1, dim);
}