Mi si chiede di leggere in input 20 numeri, ognuno dei quali compreso tra 10 e 100.Ogni volta che leggete un numero visualizzatelo qualora non sia un duplicato di uno già letto. Preparatevi al caso peggiore in cui i numeri siano tutti differenti. Utilizzate il vettore piu piccolo possibile per risolvere.
beh...immagino che vadano creati gli spazi e poi inizializzati coi numeri, messi in ordine ascendente...e credo utilizzato un algoritmo di ricerca binaria...ma..non ho idea di come modificarlo...
#include <stdio.h>
#include <conio.h>
int ricercabinaria[int [], int, int]);
int
main()
{
int risultato, doppi = 0, j, pass;
int numeri[20] = {30,32,65,10,22,55,100,55,33,54,78,36,63,15,76,32,12,59,80,60};
for(pass = 0; pass <= 19; pass++){
for(i = 0; i <= 19; i++)
if(numeri[i] > numeri[i + 1]){
hold = numeri[i];
numeri[i] = numeri[i + 1];
numeri[i + 1] = hold;
}
}
i++;
}
for(j = 0; j <= 19; j++){
risultato = ricercabinaria(numeri, 0, 20);
if(risultato == 1)
printf("%d", numero[j]);
else
doppi += 1;
}
printf("\n\nI numeri non letti sono:%d", doppi);
getch();
}
int ricercabinaria(int b[],int low, int high)
{
int mezzo;
while(low <= high){
mezzo = (low + high