Codice PHP:
#include <cstdlib>
#include <iostream>
#define MAX 10
using namespace std;
typedef int vettore[MAX];
void leggiVet(vettore x,int& y);
void stampaVet(vettore x, int& y);
void copyVet(vettore x, int& r1, vettore z, int& r2);
int main() {
vettore v1, v2;
int riemp1, riemp2;
char s, n, risposta; #1
cout<<"Inserire il riempimento del primo vettore: ";
cin>>riemp1;
leggiVet(v1, riemp1);
cout<<"\nInserre il riempimento del secondo vettore: ";
cin>>riemp2; leggiVet(v2, riemp2);
system("CLS"); #2
cout<<"\nIl primo vettore creato e' cosi' composto: [ "; #5
stampaVet(v1, riemp1);
cout<<"\nIl secondo vettore creato e' cosi' composto: [ "; #5
stampaVet(v2, riemp2);
do{
system("CLS"); #3
cout<<"\nSi desidera copiare il secondo vettore nel primo?s/n"<<endl;
cin>>risposta;
} while(risposta!='s' || risposta!='n'); #4
if(risposta=='s'){
copyVet(v1, riemp1, v2, riemp2);
stampaVet(v1, riemp1);
}
}
void leggiVet(vettore x, int& y) {
cout<<"Inserire i valori di questo vettore:\n";
for(int i=0; i<y; i++){
cin>>x[i];
}
}
void stampaVet(vettore x, int& y) {
#5 -> cout << "[ ";
for(int i=0; i<y; i++){
cout<<x[i]<<" ";
} cout<<"]\n";
}
void copyVet(vettore x, int& r1, vettore z, int& r2) {
r1=r2;
for(int i=0; i<r1; i++){
x[i]=z[i];
}
}
#1 - s e n sono variabili inutilizzate, producono un warning
#2 - la chiamata di sistema "cls" funziona solo in windows, se in futuro vorrai creare codice portabile non usarla
#3 - questo system("cls") viene subito dopo la stampa dei vettori, pulendo lo schermo non ti fa vedere il prodotto di stampaVet, che avviene correttamente. Elimina questa riga e vedi che puoi vedere la stampa
#4 - testiamo questa espressione. Supponiamo risposta='s': risposta!='s' produce false; risposta!='n' produce true -> false or true = true
Stesso discorso per risposta='n'.
Se risposta=x con x != da 's' e x != 'n' allora ottieni true or true = true
Entri dunque in loop.
A te interessa rimanere nel ciclo quando la risposta non è ne 's' ne 'n', dunque quando ris!='s' && ris!='n'
#5 - Secondo me è più corretto se stampi "[" all'interno della funzione che stampa il vettore.
Se consideri ad esempio
Codice PHP:
if(risposta=='s'){
copyVet(v1, riemp1, v2, riemp2);
stampaVet(v1, riemp1);
}
noti che ottieni "num1 num2 ... ]" senza parentesi iniziale
Un'ultimo consiglio, Dev-C++ è abbastanza datato e non ti permette di usare alcune funzionalità che ti semplificano la vita. Prova Codeblocks.