Coraggio
Ti ho scritto dei suggerimenti nei commenti del codice:
codice:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>
int insVett(int *dati,int lung){
int i,num;
for(i=0;i<lung;i++){
printf("Inserisci il numero %d di %d: ",i+1,lung);
scanf("%d",& num);
*dati++=num;
}
}
//ordina i valori in modo Crescente
int ordinaVett(int *dati,int lung){
int scambio=1,i,app;
while(scambio){
scambio=0;
for(i=0;i<lung-1;i++){
if(*(dati+i)>*(dati+i+1)){
app=*(dati+i);
*(dati+i)=*(dati+i+1);
*(dati+i+1)=app;
scambio=1;
}
}
}
}
//visualizza vettore
int visVett(int *dati,int lung){
int i;
for(i=0;i<lung;i++){
printf("[ %d ]",*dati++);
}
printf("\n");
// GLI DEVI FAR RITORNARE UN VALORE
}
//effettua la ricerca
int ricerca(dati,dato,*indiceSup,*indiceInf) // DEVI SPECIFICARE IL TIPO DI DATI esempio: int dati, ecc...
{
if(*indicieInf>*indiceSup){
return 1;
}else{
*indiceMedio=*indiceSup-(*indiceInf)/2;
if(*(dati+indiceMedio)>dato){
ricerca(dati,dato,*indiceInf-1,*indiceSup);
}else{
if(*(dati+indiceMedio)<dato){
ricerca(dati,dato,*indiceInf+1,*indiceSup);
}else{
return 1;
}
}
}
}
int main(){
int lung1=0,val,test=-1,scelta;
printf("Inserisci il numero di valori da inserire: ");
scanf("%d",&lung1);
int vett1[lung1];
printf("Inserisci il numero da cercare: ");
scanf("%d",&val);
insVett(vett1,lung1);
ordinaVett(vett1,lung1);
visVett(vett1,lung1);
ricerca(vett1,val); // RICERCA PRENDE 4 ARGOMENTI, NON DUE
return 0;
}
Se la correggi però non so se poi farà quello che gli vuoi far fare.
Puoi farmi un riassunto di qual'è lo scopo di tutte le funzioni?