du tänker rätt, men man måste försåt hur c++ fungerar.
Det du gör nu är att du skickar in en kopia på X in i funktionen, men eftersom du returnerar x så fungerar det, OM du skriver
det du däremot kan göra är att sätta & framför i variabel namnet i funktionsheadern, så skickar du in en referens av x. Då behöver kan du även ta bort retur typ och return raden. dvs
void increment(int& x)
{
x++;
}
och sillnaden medan x++ och ++x är typ när den adderar, eller hur. minns inte exakt hur de var men de kanske någon annan kan svara på om du undrar, eller får du googla lite
edit:
såg problem 2 nu
felet är att du inte har måsvingar. Det som körs inne i if-satsen då är bara första raden. Och eftersom ifsatsen inte då kommer på radne ovanför else så blir kompilatorn förvirrad antar jag.
Detvillsäga, såhär bör det vara
if (answer == solution)
{
cout << "correct\n";
increment (x);
}
else
{
cout << "incorrect\n";
}
Ska du bara ha en rad som körs efter en ifsats, eller else, så behövs inga måsvingar, men det kan vara bra att slänga in ändå för att förtydliga och att lära dig det.