Ciao, il problema principale è che quando passi alla funzione una variabile non viene creata una copia fisica della stessa ma un puntatore a quella variabile, in altre parole quando fai l’operazione:
viene modificato sempre lo stesso vettore.
Devi quindi semplicemente aggiungere un Nmezzi[pos]++ prima dei due return costo.
(Se vuoi un consiglio cerca di dichiarare le variabili globali, non solo il codice diventa più pulito ma risparmi anche tempo e memoria quando richiami funzoni fuori dal main ed eviti errori dovuti all’inizializzazione)
Però manca ancora qualcosa: quando richiami la funzione la prima volta pos è uguale a 0, ma non è detto che tu debba noleggiare sempre lo scooter.
Spero di aver risolto.
Mi permetto di dire che però estrapolato dal contesto quello che hai detto non è corretto: viene creata una copia, ma del puntatore (al primo elemento dell’array). Questi due puntatori puntano però allo stesso indirizzo di memoria e “condividono” quindi i loro dati, in ogni modo il nuovo puntatore/array è a tutti gli effetti un puntatore diverso e può quindi essere riassegnato senza invalidare il puntatore da cui è stato copiato
Grazie mille.
Si questa era un’informazione che completamente ignoravo, infatti ora sto incominciando a capire perchè tanti codici che creavo non funzionavano…