Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa
Marvel's Wolverine porta Logan in un'avventura inedita, violenta e fortemente narrativa, costruita attorno alla sua natura di combattente e al difficile rapporto con il proprio passato. Insomniac Games punta su combattimenti spettacolari, progressione e personalizzazione, inserendo l'azione in un mondo segnato dalla persecuzione dei mutanti. Un viaggio intenso, che alterna mattanza, esplorazione e momenti sorprendentemente emotivi.
DJI Romo 2: tante novità lo rendono un robot completo
DJI Romo 2: tante novità lo rendono un robot completo
Romo 2 è la seconda generazione di robot lavapavimenti di DJI, un modello che si caratterizza per la precisione nel sistema di navigazione e per il funzionamento particolarmente silenzioso. Con le modifiche introdotte in questa seconda versione, e un posizionamento di prezzo più allineato alla concorrenza, rappresenta una valida alternativa sul mercato delle soluzioni di pulizia domestica
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED
Il primo Sony con retroilluminazione True RGB alla prova del banco di misura e dei contenuti: luminanza enorme, colori accurati in HDR e un antiriflesso molto efficace. I limiti sono due sole HDMI 2.1 e il blooming fuori asse
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 22:58   #1
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
problema di ordinamento di un vettore c

salve ragazzi, ho dei problemi con questo esercizio, in pratica la funzione riceve in ingresso un array V di interi e deve creare un array W ordinato con all interno gli elementi di V. ho creato questo sorgente ma non funziona...cosa mi consigliate?

Codice:
#include <iostream.h>
#include <stdlib.h>
#define N 5

int vect[N];

void ordina(int vettore[N]){
     int a,k,i;
     int flag[N];
     int w[N];
     for(int g=0;g<N;g++){
          flag[g]=0;
          w[g]=0;
}
          
    for(i=0;i<N;i++){
             w[i]=vettore[i];
             for(k=0;k<N;k++){
                  if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag
                          
                   w[i]=vettore[k];       
             
             //w[i]=a;
             flag[k]=1;
     }
     for(int f=0;f<N;f++){
             cout<<"flag  --> " <<flag[k]<<endl;
             cout<<endl;
             cout<<"w     --> " <<w[f]<<endl;
             }
}



main(){
       for(int i=0;i<N;i++){
            cout<<"digita numero"<<endl;
            cin>>vect[i];
            }
       ordina(vect);
       system("PAUSE");
}

Ultima modifica di cionci : 21-03-2007 alle 07:38.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 07:44   #2
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Esistono dei ben precisi algoritmi per effettuare l'ordinamento dei vettori, il più semplice: http://it.wikipedia.org/wiki/Bubble_sort
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:38   #3
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
li conosco alcuni, e solo ke vorrei riuscire a creare questa funzione.. se potete aiutarmi a capire, ve ne sarei grato
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:40   #4
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Ma allora perché non applichi un algoritmo di ordinamento noto ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08:59   #5
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
perke il problema assegnatomi, non lo rikiede.. in pratica si tratta di un esercizio e lo devo svolgere cosi..
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:19   #6
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
E qual'è il testo del problema ?
Se il testo è quello scritto sopra puoi applicare banalmente un algoritmo di ordinamento copiando prima gli elementi di vettore in w e poi applicando l'algoritmo di ordinamento su w.
Ad occhio quello che stai tentando di fare è trovare il minimo fra gli elementi del vettore non flaggati, per carità dovrebbe funzionare anche così, ma mi sembra ben più complesso.

Comunque l'errore mi sembra qui:
Codice:
    for(i=0;i<N;i++){
             w[i]=vettore[i];
             for(k=0;k<N;k++){
                  if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag
                          
                   w[i]=vettore[k];       
             
             flag[k]=1;
     }
k è sempre uguale a N dopo il for.
Devi crearti una variabili minIndex:
Codice:
           if((w[i]>=vettore[k])&&(flag[k]!=1))//trova il minimo e i flag                        
           { 
                   w[i]=vettore[k];  
                   minIndex = k;
           }
           flag[minIndex] = 1;
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:31   #7
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Inoltre vedo una certa confusione...stavi parlando di C e usi iostream del C++ e non solo: iostream.h e stdlib.h sono deprecate. Ora devi includere iostream e cstdlib.

#include <iostream>
#include <cstdlib>

using namespace std; //per includere tutto il namespace std
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:39   #8
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
grazie!!! qualcosa sta migliorando solo ke ci sono ancora dei problemi...
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:44   #9
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Questa parentesi non ci vuole:

for(k=0;k<N;k++){

o se ce la metti ne metti anche una chiusa dopo l'if...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:47   #10
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
cout<<"flag --> " <<flag[k]<<endl;
Ci devi mettere f al posto di k...
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 09:53   #11
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
allora.. alcune cose le avevo corrette cmq grazie per il resto, ho detto c e non c++ per evitare di spiegare ke non posso usare le classi, i puntatori e altre cose..cmq.. non riesco a capire perke la funzione funziona solo in parte, cioe ordina solo alcuni numeri...
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:10   #12
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Il problema ce l'hai perchè inizializzi w[i] con w[i]=vettore[i];
vettore[i] può essere già flaggato oppure anche l'elemento minimo fra quelli non flaggati, in questo caso lasci un elemento minimo non flaggato che verrà assegnato a tutti i passi successivi come elemento minimo.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:25   #13
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
questo e il codice modificato, ho aggiunto "temp" per ovviare al problema ma lo stesso ho problemi..


void ordina(int vettore[N]){
int minIndex,temp=0;
int a,k,i;
int flag[N];
int w[N];
for(int g=0;g<N;g++){
flag[g]=0;
w[g]=0;
}

for(i=0;i<N;i++){
//w[i]=vettore[i];
temp=vettore[i];
for(k=0;k<N;k++)
if((temp>=vettore[k])&&(flag[k]!=1)){ //trova il minimo e i flag

w[i]=vettore[k];
minIndex = k;

}
flag[minIndex]=1;
}


for(int f=0;f<N;f++){
cout<<" flag --> " <<flag[f]<<endl;
cout<<endl;
cout<<"w --> " <<w[f]<<endl;
}
}


main(){
for(int i=0;i<N;i++){
cout<<"digita numero"<<endl;
cin>>vect[i];
}
ordina(vect);
//cout<<trov_min(vect);
system("PAUSE");
}
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:36   #14
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Certo perchè temp potrebbe essere già flaggata e quindi sarebbe minore di tutti gli elementi rimasti... Inizializza temp a INT_MAX.
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 10:51   #15
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
non ci sto capendo niente!!! ..aiutatemi...

Ultima modifica di papas_b : 21-03-2007 alle 11:26.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 11:53   #16
okay
Senior Member
 
Iscritto dal: Feb 2002
Messaggi: 906
Quote:
Originariamente inviato da papas_b Guarda i messaggi
non ci sto capendo niente!!! ..aiutatemi...

togli l'ordinamento per il flag e fai un normale ordinamento al minimo...
se tutto ok allora usa il flag...
okay è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:11   #17
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
Quote:
Originariamente inviato da okay Guarda i messaggi
togli l'ordinamento per il flag e fai un normale ordinamento al minimo...
se tutto ok allora usa il flag...
in pratica mi stai dicendo di rifare tutto?

non ci sto.. lo devo risolvere!!!
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:13   #18
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
Hai provato ad inizializzare temp a INT_MAX ?
cionci è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:23   #19
alberto.frz
Member
 
L'Avatar di alberto.frz
 
Iscritto dal: Dec 2004
Città: Venezia
Messaggi: 192
...prova a guardare il bubble sort e traine spunto...cosi vedi come procedere...
__________________
alberto.frz è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12:55   #20
papas_b
Utente sospeso
 
Iscritto dal: Aug 2004
Messaggi: 193
gazie.. ma devo sistemare questo codice.. si tratta di qualke disattenzione (spero!!)
papas_b è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Marvel's Wolverine, la recensione: Logan torna protagonista in un'avventura brutale e intensa Marvel's Wolverine, la recensione: Logan torna p...
DJI Romo 2: tante novità lo rendono un robot completo DJI Romo 2: tante novità lo rendono un ro...
Sony Bravia 9 II: il True RGB alla prova, dove l'LCD sfida l'OLED Sony Bravia 9 II: il True RGB alla prova, dove l...
Geely EX5, un mese al volante: il SUV elettrico cinese che ci ha sorpreso (quasi) senza riserve Geely EX5, un mese al volante: il SUV elettrico ...
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Giochi Ubisoft su Steam senza Ubisoft Co...
Miami Beach ha autorizzato la maxi opera...
Apple regala un altro anno di funzioni s...
Alla fine è successo davvero: Vol...
Il meglio di Amazon del weekend in uno s...
Speciale TV in offerta su Amazon: Hisens...
Non c'è pace per Trezor: 347.000 e-mail ...
È un portatile Dell e li vale tut...
Apple iPhone 17 Pro Max 256GB a 1.195€ (...
GPT-6 Astra è davvero AGI o non s...
LG OLED G6S 48'' a 845€ e G6 55'' a 1368...
Mantax Otax: il malware Android che crip...
Musk incassa un altro maxi contratto IA:...
Le vendite di EV sono esplose in tutto i...
Avio si prepara ai test del Dimostratore...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 12:12.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v