Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi
Con la prima rete 5G Standalone attiva in Italia, WINDTRE compie un passo decisivo verso un modello di connettività intelligente che abilita scenari avanzati per imprese e pubbliche amministrazioni, trasformando la rete da infrastruttura a piattaforma per servizi a valore aggiunto
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh
OPPO Find X9 Pro punta a diventare uno dei riferimenti assoluti nel segmento dei camera phone di fascia alta. Con un teleobiettivo Hasselblad da 200 MP, una batteria al silicio-carbonio da 7500 mAh e un display da 6,78 pollici con cornici ultra ridotte, il nuovo flagship non teme confronti con la concorrenza, e non solo nel comparto fotografico mobile. La dotazione tecnica include il processore MediaTek Dimensity 9500, certificazione IP69 e un sistema di ricarica rapida a 80W
DJI Romo, il robot aspirapolvere tutto trasparente
DJI Romo, il robot aspirapolvere tutto trasparente
Anche DJI entra nel panorama delle aziende che propongono una soluzione per la pulizia di casa, facendo leva sulla propria esperienza legata alla mappatura degli ambienti e all'evitamento di ostacoli maturata nel mondo dei droni. Romo è un robot preciso ed efficace, dal design decisamente originale e unico ma che richiede per questo un costo d'acquisto molto elevato
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 16-06-2010, 13:10   #1
enrico.pix
Senior Member
 
Iscritto dal: May 2008
Città: Messina
Messaggi: 548
[c++] ricerca ed indicazione posizioni in un vettore

sto perdendo tempo. sto facendo una cosa inutile, ma ormai mi sono impuntato.
teoricamente ha senso quello che sto scrivendo.
crea un vettore "posizioni" di "volte" interi. fai un ciclo j, dall'elemento 0 all'ultimo elemento di questo vettore. per ognuno di questi elementi fai la ricerca. se la ricerca da esito positivo assegna all'elemento j del vettore "posizioni" il valore i del ciclo della ricerca.

però non funge come dovrebbe. mi indica solo l'ultima posizione in cui è stato avvistato l'elemento.... dategli un'occhiata vi prego

Codice:
#include <cstdlib>
#include <iostream>
#define MAXDIM 20

using namespace std;

int main(int argc, char *argv[])
{
    int i,j;
    int dim,elemento,posizione;
    int volte=0;
    bool trovato;
    int vett[MAXDIM];
    
    cout<<"Inserisci la dimensione del vettore\t"<<endl;
    cin>>dim;
    
    while((dim>0)&&(dim<=MAXDIM)){
                              for(i=0;i<dim;i++){//legge i valori
                                                 cout<<"Inserisci il valore per la posizione "<<i<<endl;
                                                 cin>>vett[i];
                                                 }
                              cout<<"Inserisci l'elemento da cercare\t"<<endl;
                              cin>>elemento;//legge l'elemento da cercare
                              trovato=false;//imposta trovato=falso
                              for(i=0;i<dim;i++){//ricerca elemento
                                                 if (vett[i]==elemento){
                                                                        volte++;//aumenta dimensione vettore posizioni.
                                                                        }
                                                 }
                              int posizioni[volte];
                              for(j=0;j<volte;j++){
                                                   for(i=0;i<dim;i++){
                                                                      if (vett[i]==elemento){
                                                                                             posizioni[j]=i;
                                                                                             trovato=true;
                                                                                             }
                                                                      }
                                                   }
                              
                              if (trovato==true){
                                                cout<<"L'elemento e' stato trovato "<<volte<<" volte nelle posizioni:\n";
                                                for(i=0;i<volte;i++){
                                                                     cout<<posizioni[i]<<endl;
                                                                     }
                                                }
                              else{
                                   cout<<"L'elemento non e' stato trovato"<<endl;
                                   }
                              
                              
    
    system("PAUSE");
    return EXIT_SUCCESS;
}
}
__________________
Cosa c'è in tv? corto sulla tv trash!
Concluse le trattative di vendita/scambio positivamente con Ares17, gigarobot, Ale29, Amiga1200 e manga81
conclusa la trattativa di acquisto positivamente con rambdco.
enrico.pix è offline   Rispondi citando il messaggio o parte di esso
Old 18-06-2010, 22:25   #2
Z80Fan
Senior Member
 
L'Avatar di Z80Fan
 
Iscritto dal: Sep 2009
Messaggi: 638
Ciao.
Codice:
int posizioni[volte];
Non lo puoi scrivere. I vettori li devi dichiarare solo con delle costanti. Il compilatore non ti dà errore se lo scrivi, ma è logicamente sbagliato. Devi fare come per "vett" dove hai usato la costante MAXDIM.

Poi il tuo algoritmo è sbagliato in diversi punti. Il problema sta nei 2 for annidiati (j e i). Ti consiglio di toglierli e fare l'inserimento in "posizioni" nel primo ciclo "i", dove aumenti "volte".

Poi, perchè usi un while per controllare l'input?? un if non andava bene???
__________________
| Il mio "OS" (thread su HWU) | |
Z80Fan è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
DJI Romo, il robot aspirapolvere tutto trasparente DJI Romo, il robot aspirapolvere tutto trasparen...
DJI Osmo Nano: la piccola fotocamera alla prova sul campo DJI Osmo Nano: la piccola fotocamera alla prova ...
FUJIFILM X-T30 III, la nuova mirrorless compatta FUJIFILM X-T30 III, la nuova mirrorless compatta
Perplexity firma un accordo con Getty Im...
La Polizia di Las Vegas è il prim...
Le nostre chat sono salve, Chat Control ...
Elon Musk promette di presentare il prot...
Rapina al Louvre: la password che proteg...
'L'auto volante' è finalmente rea...
Religione e pirateria: uno studio rivela...
Roborock QV 35A al nuovo minimo storico:...
Arriva Aardvark: il nuovo agente OpenAI ...
Bufera su Rockstar: licenziamenti per 40...
Il Black Friday di HONOR dura un mese! T...
Shadow AI: il lato invisibile dell’innov...
Microsoft tornerà ad assumere, ma...
MSI, tre notebook GeForce RTX in sconto ...
AGCOM, passo falso nel PDF dei siti porn...
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: 11:28.


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