|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
[C++] Funzione elimina
salve a tutti, devo eliminare da un vettore V tutti gli elementi il cui valore è maggiore di k e calcoli il numero num degli elementi eliminati. La prima parte di input del vettore già l'ho fatta, ma ho problemi sulla funzione elimina, di seguito vi posto quello che ho scritto io!:
void elimina (int V[], int&n, int&k, int&num) { int i; i=0; num=0; if (V[i]>k) {elimina=i; } else i++; for(i=0;i<n;i++) {num=i++} scusate se ho postato male ma è la prima volta per me..e come sempre...HELP! |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
devo sprecare meno memoria, comunque la funzione deve avere in ingresso n,v,e k e in uscita mi deve dare num, ovvero il numero delle cifre eliminate. Il vettore è composto da interi. A guardarlo c'è qualcosa che non va, non riesco proprio a capire la logica della funzione e di sicuro V[i]>k non posso assolutamente farlo...un vettore maggiore di uno scalare?? quello che voglio intendere io è ke l'elemento del vettore è maggiore dello scalare ma non so come tradurlo!!
Ultima modifica di Andreww!!! : 21-09-2008 alle 17:07. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
Codice:
/* * v[] vettore contenente i numeri * k valore massimo * n dimensione dell'array */ int* elimina (int v[], int k, int n, int &numElementiCancellati) { // impostiamo a 0 il numero di elementi eliminati *numElementiCancellati = 0; // scorriamo l'array alla ricerca degli elementi da cancellare for (int i = 0; i < n; i++) { // controlliamo che l'elemento sia maggiore del valore passato if (v[i] > k) { // scorriamo per eliminare gli elementi for (int j = i; j < n -1 ; j++) { v[j] = v[j+1]; } // impostiamo per esempio a 0 l'ultimo elemento v[n -1] = 0; // incrementiamo il contatore *numElementiCancellati ++; } } // ritorniamo l'array modificato return v; } ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso Ultima modifica di Fenomeno85 : 21-09-2008 alle 17:49. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
lo provo io. in ogni caso grazie sei stato molto gentile..
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
void funz1 (int &k, float v[], bool &scambia, int dim, float val, int &j)
{ int i; for (i=0; i<dim-1; i++) { k=0; j=0; scambia=false; if (v[i]>val) { while(v[i+1]<val) { v[i]=v[i+1]; j++; scambia=true; k++; } } } } un mio amico ha usato questo! mi dici qual è la differenza rispetto al tuo? |
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
Guardando poi quel valore booleano è messo a casaccio, non serve a nulla. Per finire che a vista sembra che quel programma va in loop infinito nel caso in cui v[i] > val ... se v[i+1] < val allora li rimarrà fino a morte dell'universo. ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
io vorrei postarti tutto il testo ma il regolamento me lo vieta....come posso spiegartelo senza andare contro le regole??
![]() |
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
il fatto è ke l'ho detto solo che tu dici che manca qualcosa ma non so a cosa ti riferisci..
|
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
inoltre ti vorrei far vedere tt il programma per ulteriori kiarimenti, sempre se ne hai voglia e se lo poxo fare.
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
Il problema è che bisogna capire e solo te lo sai se una volta che hai trovato l'elemento da cancellare, in quella cella va messo un segno particolare oppure bisogna shiftare gli elementi? In questo caso se si shifta si va a creare alla fine un buco che va riempito con una marca. Io ho messo 0. Ovvero pensa se hai questo array e k = 3: 1 2 3 4 5 6 7 1 2 3 5 6 7 0 1 2 3 6 7 0 0 1 2 3 7 0 0 0 1 2 3 0 0 0 0 ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso Ultima modifica di Fenomeno85 : 21-09-2008 alle 17:48. |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
il programma deve soltanto calcolare quanti elementi sonos tati cancellati non quali
EDIT:ah abbiamo dimenticato di dichiarare j! |
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
void elimina (int V[], int&n, int k, int j, int&num)
{ int i; num=0; for (i=0;i<n;i++) {if (V[i]>k) { for (j=i;j<n-1;j++) {V[j]=V[j+1]; } V[n-num-1]=0; j++; } } } ho scritto così io e mi dice: [Linker error] undefined reference to `elimina(int*, int&, int&, int&)' |
![]() |
![]() |
![]() |
#17 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
Quello che non riesci a capire è che se hai 100 elementi e te ne rimangono 3 gli altri 97 devono avere un valore ma questo dipende dal programma. Se invece vuoi un array di dimensione 3 allora quel programma deve essere fatto in maniera diversa usando malloc. ~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
Quote:
return-statement with a value, in function returning 'void' |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Jun 2002
Città:
Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8895
|
Quote:
~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio. Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Apr 2008
Città: Napoli
Messaggi: 2190
|
purtroppo hai ragione è lunga da spiegare, so di sapere poco e questo forum era l'unica cosa veloce ke mi è venuta in mente per imparare, scusa se ti ho fatto perdere tempo.
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:51.