ok ora funzica.. avevo sbagliato quel fatto sulla i.
Guardate quest'altro che non riesco a far funzionare:
TRACCIA:
Prova 3
Siano assegnati in ingresso, da tastiera, un vettore di interi V, il suo riempimento n ed un intero k.
Si scriva un programma che elimini dal vettore V tutti gli elementi il cui valore è maggiore di k e calcoli il numero num di elementi eliminati. Si stampino quindi il vettore V modificato ed il valore num.
Il programma deve essere articolato in funzioni (ad es.: input, output, elimina).
Suggerimento: la funzione elimina riceve in ingresso n, V e k e restituisce come valore di ritorno num.
Esempi
INPUT: n = 7 V = 7 4 1 3 7 2 9 k = 4
OUTPUT: V = 4 1 3 2 num = 3
INPUT: n = 7 V = 7 4 1 3 7 2 9 k = 12
OUTPUT: V = 7 4 1 3 7 2 9 num = 0
MIO SVOLGIMENTO:
qualcuno può correggermelo mettendo in grassetto la parti errate che ha corretto?? Mi sa che sbaglio sul while, come va fatto???codice:#include <stdlib.h> #include <iostream> using namespace std; void input (int v[], int &n, int &k); void elimina(int v[], int &n, int k, int &num); void output(int v[], int &num, int &n); int main() { int v[100]; int n,k; int num=0; input(v,n,k); elimina(v,n,k,num); output(v,num,n); system("PAUSE"); return 0; } void input (int v[], int &n, int &k) { int i; cout<<"inserisci il numero di elementi costituenti il vettore\n\n"; cin>>n; cout <<"inserisci gli elementi del vettore\n\n"; for (i=0;i<n;i++) cin>>v[i]; cout<<"\n\ninserisci ora un valore intero k"; cin>>k; } void elimina(int v[], int &n, int k, int &num) { int i=0; while(i<n) { if(v[i]>k) {v[i]=v[i+1]; num++; } else i++; } } void output(int v[],int &num, int &n) { cout<<"i valori del vettore modificato sono\n\n"; for (int i=0;i<n;i++) cout <<v[i]<<"\t"; cout <<" il numero di elementi elininati e\'"<<num<<"\n\n\n"; }![]()

