Ich habe das Problem, dass mir beim Kompilieren angezeigt wird, dass nach dem return der Rückgabetyp nicht mit dem Funktionstyp übereinstimmt. Außerdem wird bei der Funktion bei der Variable Stärke und Geschwindigkeit angezeigt, dass der Ausdruck ein änderbarer lvalue sein muss.

Ich verstehe nicht, was der Compiler von mir will.

#include <iostream>

using namespace std;

int Stärke;
float Geschwindigkeit;
float Steigerung;
float neueGeschwindigkeit;
int neueStärke;

void Funktionstärke(int Stärke, float Steigerung);

void Funktiongeschwindigkeit(float Geschwindigkeit, float Steigerung);

int main()
{
  cout << "Stärke abfragen" << endl;
  cin >> Stärke;
  cout << "Geschwindigkeit abfragen" << endl;
  cin >> Geschwindigkeit;
  cout << "Steigerung abfragen" << endl;
  cin >> Steigerung;

  Funktionstärke(Stärke, Steigerung);
  Funktiongeschwindigkeit(Geschwindigkeit, Steigerung);

  return 0;
}

void Funktionstärke(int Stärke, float Steigerung, int neueStärke)
{
  Stärke + (Stärke * Steigerung / 100) = (int)neueStärke;
  return neueStärke;
}

void Funktiongeschwindigkeit(float Geschwindigkeit, float Steigerung, float neueGeschwindigkeit)
{
  Geschwindigkeit + (Geschwindigkeit * Steigerung / 100) = neueGeschwindigkeit;
  return neueGeschwindigkeit;
}