|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Feb 2015
Messaggi: 50
|
[C] Selection sort_ottimizzato- principiante
Salve, effettuo questo codice di un selection sort ottimizzato (dato direttamente dal prof.) ma vien fuori un erroraccio! Potete aiutarmi?
Codice:
#include "stdio.h" #include <stdlib.h> #define MAX 100 void input_vettore (int V[],int* N) { int x, t=0, n=0; do { printf ("Inserire la dimensione dell'array= "); scanf ("%d", &n); } while (n<2||n>MAX); for (x=0;x<n;x++) { printf ("Inserire l'elemento V[%d]= ", x); scanf ("%d", &t); } *N=n; } void sel_sort_ott (int V[],int N) { int imin, i, j, temp=0; for (i=0;i<(N-1);i++) { imin=i; for (j=i+1;j<N;j++) { if (V[i]>V[j]) imin=j; } temp= V[i]; V[i]=V[imin]; V[imin]=temp; } printf ("Il vettore ordinato e'\n"); for (i=0;i<N;i++) { printf ("V[%d]= %d ",i, V[i]); } } void main() { int V[MAX], N; input_vettore (V,&N); sel_sort_ott (V,N); } ![]()
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2014
Messaggi: 1369
|
Ricontrolla la funzione che fa l'inserimento dei valori nel vettore. L'inserimento non viene fatto in modo corretto, quindi il vettore conterrà valori diversi da quelli inseriti da tastiera.
L'algoritmo di selection sort, infatti, a occhio è corretto, ma se lavora su dati che non sono corretti, anche il risultato è ovviamente sbagliato |
![]() |
![]() |
![]() |
#3 |
Member
Iscritto dal: Feb 2015
Messaggi: 50
|
Effettivamente si: a quel t dello scanf va sostituito V[x]; ho riscontrato anche un altro errore nell' if del void selection sort va sostiuito con v[j]<V[imin]
![]()
__________________
![]() ![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:03.