|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: May 2006
Città: A 32 km da Ferrara, 35 da Bologna e 38 da Modena
Messaggi: 201
|
[C++] Ordinare un vettore
"Inserisci un vettore di N elementi ordinalo in modo crescente e visualizzalo, aggiungi da tastiera un nuovo numero nel vettore e riordinalo; visualizza il vettore risultante"
Questa la consegna, ma ho un problema: quando l'utente inserisce il numero da aggiungere poi stampa il vettore ma senza il numero aggiunto. Dov'è il problema? ![]() Codice:
/* vett1 */
#include <iostream.h>
#include <time.h>
#include <stdio.h>
int LUN, I, vet[1000], K, COM, vet2[1000], N;
main()
{
srand(time(NULL));
cout<<"Quanti numeri vuoi inserire?"<<endl;
cin>>LUN;
for (I=0; I<LUN; I++)
{
vet[i]=rand()%100;
cout<<vet[i]<<" ";
}
cout<<endl;
cout<<endl;
for (I=0; I<LUN; I++)
{
for(K=I+1; K< LUN; K++)
{
if(vet[i]>vet[K])
{
COM=vet[i];
vet[i]=vet[K];
vet[K]=COM;
}
}
}
cout<<"Inserisci un altro numero"<<endl;
cin>>N;
vet2[LUN]=N;
for(I=0; I<LUN; I++)
{
vet2[i]=vet[i];
cout<<vet2[i]<<" ";
}
getchar();
getchar();
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2782
|
Perché il ciclo di stampa termina prima di stampare l'ultimo elemento, cioè vet2[LUN]. Se vuoi stampare anche quello basta cambiare la condizione di termine del ciclo che adesso è I<LUN in I<=LUN
Edit: anzi, ho detto una cazzata, perché dentro al ciclo lo sovrascriveresti. Se vuoi stamparlo devi farlo fuori dal ciclo Edit2: ad ogni modo non hai ancora terminato l'esercizio perché devi ancora ordinare il nuovo vettore. Tra l'altro, perché usi due vettori? Ne bastava uno. Ultima modifica di wingman87 : 13-03-2008 alle 19:53. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Feb 2006
Messaggi: 1304
|
Quote:
Poi il < LUN fa si che il for non arrivi mai al nuovo valore, e anche se ci arrivasse, come ha detto Wingman, lo sostituirebbe. IMHO dovresti farti una funzione che stampa il vettore e una funzione che lo riordina. Così in main chiamando quelle due avresti tutto più ordinato |
|
|
|
|
|
|
#4 |
|
Member
Iscritto dal: May 2006
Città: A 32 km da Ferrara, 35 da Bologna e 38 da Modena
Messaggi: 201
|
Che stupido, bastava un
Codice:
cout<<vet2[LUN]; Problema risolto, grazie a tutti |
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Dove stai studiando il C++ ? Se lo stai studiando su un libro ti volevo far notare che è molto vecchio.
Gli header che hai inserito si scrivono così: #include <iostream> #include <ctime> #include <cstdio> using namespace std; |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:12.





















