disperazione!
domani ho la verifica sui puntatori e le funzioni ricorsive, ho questo programma da consegnare (su cui studiare) ma non funziona.. anzi, mi da errore alla riga 39 (riguardante la funzione ricerca)..
qualcuno riesce ad aiutarmi?
ho provato a mettere l'asterisco anche a a dati (essendo il vettore), ma da ancora più errori..
codice:
#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);
*dati++;
}
printf("\n");
}
//effettua la ricerca
int ricerca(dati,dato,*indiceSup,*indiceInf){
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);
getchar();
}
Grazie mille a tutti..