Salve a tutti!
Mi sono approcciato da poco a C++ ed ho appena studiato le funzioni. Il problema che ho è il seguente:
Prima di tutto, ho dovuto definire due vettori, w e z, che contenessero un certo numero di bit.
Fatto ciò, devo costruire una funzione che, ricevuti in ingresso questi due vettori, fornisca in output un terzo vettore, costituito dall'AND bit a bit dei due vettori in ingresso. Infine, devo creare una funzione che stampi questo terzo vettore risultato. Il mio dubbio è che non riesco a capire come fare in modo che il terzo vettore passi dalla funzione che lo ha prodotto alla funzione che deve stamparlo. Prima di tutto, vi faccio vedere come ho scritto il programma:
#include <iostream>
using namespace std;
void AND_bit_a_bit (int w[], int z[], int n) {
int k[n];
for (int i=0; i<n; ++i) {
k[i]=w[i]*z[i];
}
}
void stampa (int k[], int n) {
cout << "Il vettore risultato è : " << endl;
for (int i=0; i<n; ++i){
cout << k[i] << endl;
}
}
int main () {
int n;
cout << "Inserire n caratteri binari del primo vettore e n caratteri binari per il secondo vettore : ";
cin >> n;
int w[n];
int z[n];
cout << "Caratteri primo vettore : " << endl;
for (int i=0; i<n; ++i) {
cin >> w[i];
}
cout << "Caratteri secondo vettore : " << endl;
for (int i=0; i<n; ++i) {
cin >> z[i];
}
AND_bit_a_bit (w, z, n);
stampa (k, n)
}
Ovviamente così non funziona, perché nella funzione stampa c'è un k che al di fuori della funzione che lo ha creato non viene definito.
Quel che mi chiedo appunto è: come faccio ad inserire nel main il terzo vettore se è stato prodotto nell'ambito circoscritto alla sua funzione? Non credo di poter dichiarare k[n] all'interno del main stesso, fare in modo che passi per la funzione che lo trasformi e poi passarlo alla funzione stampa, perché è stato espressamente richiesto che la funzione che compie la trasformazione deve ricevere in ingresso solo i vettori di partenza w e z. Un'altra cosa: qualsiasi sia la risposta, aggiungo che i puntatori non possono essere utilizzati per il semplice fatto che non rientravano nel nostro piano di studi. Grazie mille per l'attenzione!!