PDA

Visualizza la versione completa : [C] Ricerca del valore minimo in un vettore


Michele:)
19-07-2014, 17:17
Ciao!:) Devo trovare il valore minimo in un vettore, io ho provato a scrivere questo programma mi mi dà come valore minimo 0 che è sbagliato...


#include <stdio.h>


int indiceDelMinimo(int *vet, int dim, int i)
{
i=0;
int min;
for(i=0; i<dim; i++)
{
if(min>vet[i])
{
vet[i]=min;
}
}
return min;
}


int main()
{
int vet[12]={1, 2, 3, 4, 5, 6, 7, 8, 9};
int dim;
dim=5;
int index;
index=3;
int ris;
int i;
i=0;
ris=indiceDelMinimo(&vet[3], dim, i);
printf("Il valore minimo e' %d", ris);
}

Grazie davvero

oregon
19-07-2014, 18:49
1) a che serve index ?
2) perché dim è uguale a 5 se hai 9 elementi?
3) perchè un vettore di 12 se hai 9 elementi?
4) che serve passare i (terzo parametro nella funzione) ?
5) min deve avere un valore iniziale. Devi assegnare un valore molto grande
6) non deve essere vet[i]=min; ma dim=vet[i];
7) perché la funzione si chiama indiceDelMinimo ?

Rotang14
27-07-2014, 09:39
Mai vista un'accozzaglia di variabili inutilizzate e/o assegnate a caso del genere.


#include<stdio.h>

int indiceDelMinimo(int*vet,int dim)
{
int i=0;
int min=900; //valore alto rispetto ai valori che hai messo tu nell'array
for(i=0; i<dim; i++)
{
if(min>vet[i])
{
min=vet[i];
}
}
return min;
}

int main(){
int vet[9] = {1,2,3,4,5,6,7,8,9}; //gli elementi sono 9
int dim = 9; //idem, gli elementi sono 9
int ris;
ris=indiceDelMinimo(vet, dim); //basta passargli vet (contiene indirizzo primo elemento, perchè proprio &vet[3] avevi messo?
printf("Il valore minimo e' %d", ris);
}


Rimane il mistero posto da Oregon: perchè la funzione si chiama indiceDelMinimo se ritorna il valore del minimo? :confused:

Loading