Giorno a tutti! Dovrei fare un programma di ricerca che sia ordinato e disgiunto ma mi sono persa totalmente e non riesco a sistemarlo! L'inserimento lo deve fare direttamente in automatico quindi senza riceverlo in ingresso dall'utente, in ingresso devo inserire "x" che è l'elemento da cercare... e deve stampare se l'elemento è stato trovato e in quale posizione e se l'elemento non è stato trovato... Ho provato a crearlo ma funziona solo se l'elemento viene trovato se non viene trovato non stampa niente! Aiutooo!
Questo è il programma che ho creato ---->
//Non ordinato e ripetuto
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 100
void genera (int*, int);
int ricerca (int*, int *, int, int);
void stampa (int*, int, int);
int main()
{
int v[MAX], a[MAX], n, x, j;
do{
printf("Inserisci la lunghezza del vettore: ");
scanf("%d", &n);
}while ((n<0) || (n>MAX));
genera(v, n);
do{
printf("Inserisci il numero da cercare: ");
scanf("%d", &x);
}while ((x<0) || (x>MAX));
j=ricerca(v,a,x,n);
stampa(a,x,j);
return 0;
}
void genera (int v[MAX], int n){
int i=0;
time_t t;
srand((unsigned)time(&t));
do{
v[i]=(rand ()% 100)+1;
printf("Elemento %d: %d \n",i, v[i]);
i++;
}while (i<n);
}
int ricerca (int v[MAX], int a[MAX], int x, int n){
int i=0, j=0;
while (i<n){
if (v[i]==x){
a[j]=i;
j++;}
i++;
}
return j;
}
void stampa (int a[MAX], int x, int j){
int i=0;
while (i<j){
printf("Elemento %d trovato in posizione %d", x, a[i]);
i++;
}
}