Ciao a tutti, sono nuovo di questo forum.
Devo sostenere un esame all'università di Informatica e non essendo il mio campo di studio la conoscenza del linguaggio C++ è base.
Non riesco nei vari esercizi a modificare un array dopo una chiamata di una funzione.
NB: il professore se nel testo riguardante la Funzione (in questo caso InParte) non vi è la parola RITORNARE la funzione è di tipo void.
Grazie in anticipo a quelli che mi risponderanno dandomi una mano sono veramente in crisi
TESTO:
Scrivere un algoritmo codificato in linguaggio C/C++ che:


  1. definisce la funzione InParte con parametri:
    • a di tipo vettore di 5 int;
    • b di tipo vettore di 5 int;
    • c di tipo puntatore/riferimento ad un int.


La funzione deve copiare il primo valore del vettore a nel primo posto del vettore b e per ogni valore x del vettore a successivo al primo, la funzione deve copiare x nel vettore b solo se x minore di tutti gli elementi del vettore a già copiati nel vettore b. La funzione deve inoltre scrivere nell’area di memoria puntata/riferita da c la posizione del più piccolo valore copiato nel vettore b.


  1. nella funzione main
    1. dichiara due vettori x e y di 5 int.
    2. dichiara una variabile n di tipo int;
    3. ripete le seguenti istruzioni fino a quando l’esecuzione della funzione InParte() inserisce nella variabile n il valore 0:


a. riempire il vettore x con valori letti da standard input;
b. eseguire la funzione InParte () applicata al vettore x inserendo i risultati nel vettore y e nella variabile n;

CODICE:
#include<stdlib.h>
#include<iostream>
using namespace std;
void InParte (int a[], int b[], int &c)
{int i=0, k=0, min, conta=0;


b[0]=a[0];
for(k=0; k<5; k++){for(i=1; i<5; i++){if(a[i]<b[k]){b[k]=a[i];}}}
min=b[0];
for(k=0; k<5; k++){if(b[k]<min){min=b[k]; conta++;}}
c=conta;
}
int main()
{int x[5], y[5], n, i=0, ris, k=0;


do{
cout<<"carica vettore x:"<<endl;
for(i=0; i<5; i++){cin>>x[i];}
InParte (x, y, ris);
n=ris;
cout<<"n: "<<n<<endl;
for(k=0; k<5; k++){cout<<y[k]<<endl;}
}
while(n!=0);

system("pause");
return 0;
}