Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile
Abbiamo provato a fondo il nuovo Magic 8 Lite di HONOR, e per farlo siamo volati fino a Marrakech , dove abbiamo testato la resistenza di questo smartphone in ogni condizione possibile ed immaginabile. Il risultato? Uno smartphone praticamente indistruttibile e con un'autonomia davvero ottima. Ma c'è molto altro da sapere su Magic 8 Lite, ve lo raccontiamo in questa recensione completa.
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora
WF-1000X M6 è la sesta generazione di auricolare in-ear sviluppata da Sony, un prodotto che punta a coniugare facilità di utilizzo con una elevata qualità di riproduzione dei contenuti audio e una cura nella riduzione del rumore ambientale che sia da riferimento
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI
Snowflake ha presentato diverse novità per la sua piattaforma legate all'intelligenza artificiale. Quella forse più eclatante è una collaborazione con OpenAI, ma non mancano diverse nuove funzionalità che rendono la piattaforma più flessibile e in grado di rispondere meglio alle esigenze in continuo cambiamento delle aziende
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2007, 23: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 08:38.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 08: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, 09: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, 09: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, 09: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, 10: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, 10: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, 10: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, 10: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, 10: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, 10: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, 11: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, 11: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, 11: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, 11: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 12:26.
papas_b è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2007, 12: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, 13: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, 13: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, 13: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, 13: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


Recensione HONOR Magic 8 Lite: lo smartphone indistruttibile e instancabile Recensione HONOR Magic 8 Lite: lo smartphone ind...
Sony WF-1000X M6: le cuffie in-ear di riferimento migliorano ancora Sony WF-1000X M6: le cuffie in-ear di riferiment...
Snowflake porta l'IA dove sono i dati, anche grazie a un accordo con OpenAI Snowflake porta l'IA dove sono i dati, anche gra...
Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo MSI Sistema Mesh Roamii BE Pro: il Wi-Fi 7 secondo M...
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Hyundai: spunta un'elettrica estremament...
Una connessione diretta con AWS European...
La Toyota Yaris avrà una versione...
Minori sessualizzati da Grok: l'UE mette...
NIO stabilisce il nuovo record di scambi...
Dell Private Cloud sempre più ape...
Ennesimo incidente per la guida autonoma...
Dopo le maniglie, è il turno dei ...
Addio incendi incontrollati? Svolt dice ...
WINDTRE si mette in proprio: vender&agra...
The Mandalorian & Grogu: il trailer ...
OpenClaw sotto attacco: i malware infost...
Resident Evil Requiem: pre-load dal 25 f...
Vaticano, la Messa si traduce in 60 ling...
Kia prepara il facelift della Kia EV5: n...
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: 08:17.


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