Scambio di numeri attraverso sottoprogrammi.

di il
2 risposte

Scambio di numeri attraverso sottoprogrammi.

Devo realizzare un programma che mi scambi due numeri attraverso l'utilizzo di sottoprogrammi, il programma funziona e scambia anche correttamente solamente che ad esempio se inserisco 10 e 20, dice che a vale 20 e b vale 10 50605 , aggiunge dei numeri nel finale come mai?
#include <iostream>
using namespace std;

int scambia (int& a, int& b)
{
	int scambio;
	scambio=a;
	a=b;
	b=scambio;
	
	cout << " a ora vale " << a << " e b ora vale " << b << endl;
}

void richiedi (int& a, int& b)
{
	cout << " Inserire a ";
	cin >> a;
	cout << " Inserire b ";
	cin >> b;
}

void stampa (int a, int b)
{
	cout << " Lo scambio e' avvenuto con successo ";
	cout << scambia (a,b);
}
/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char** argv) {
	int a,b;
	richiedi (a,b);
	stampa (a,b);
	
	return 0;
}

2 Risposte

  • Re: Scambio di numeri attraverso sottoprogrammi.

    Perchè stai stampando anche il valore di ritorno della funzione scambia()
    cout << scambia (a,b);
    In realtà quello che secondo me dovresti fare è far sì che la funzione scambia() esegua solo lo scambio, senza alcun output a video, e che il risultato venga stampato da fuori dalla scambia():
       scambia(a,b);
       cout << " a ora vale " << a << " e b ora vale " << b << endl;
  • Re: Scambio di numeri attraverso sottoprogrammi.

    Grazie ho risolto!
Devi accedere o registrarti per scrivere nel forum
2 risposte