Ich hatte genau dasselbe Problem wie der Ersteller und bin fast verzweifelt... Immer wieder hab ich versucht, den Wert zurückzugeben, in allen hier beschriebenen Variationen. Nichts hat dazu geführt, dass die Werte verändert wurden. Doch jetzt, nach 2 Stunden suchen ( Und, ich gebe zu, mit Lösung anschauen), habe ich den verflixten Fehler gefunden.
Hier meine erste (2. Letzte - also etwa 50ste Version):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
#include <iostream>
using namespace std;
int addProzent (int Zahl, int Prozent);
float addProzent (float fZahl, int Prozent);
int main ()
{
int Prozent = 0;
int Zahl = 0;
float fZahl = 0;
cout << "Bitte Starke eingeben: ";
cin >> Zahl;
cout << "Bitte Geschwindigkeit eingeben: ";
cin >> fZahl;
cout << "Bitte Prozente eingeben: ";
cin >> Prozent;
cout << "\n\n\nStaerke vorher: " << Zahl << endl;
cout << "Geschwindigkeit vorher: " << fZahl;
addProzent (Zahl, Prozent);
addProzent (fZahl, Prozent);
cout << "\n\n\nStaerke nachher: " << Zahl << endl;
cout << "Geschwindigkeit nachher: " << fZahl << endl;
return 0;
}
int addProzent (int Zahl, int Prozent)
{
return Zahl+Zahl/100*Prozent;
}
float addProzent (float fZahl, int Prozent)
{
return fZahl+fZahl/100*Prozent;
}
|
Tjeaaa.. Das hat nicht geklappt. Hab es auch mit den komischen, nicht verstandenen Versionen a la:
|
C-/C++-Quelltext
|
1
2
3
4
|
float addProzent (float &fZahl, int &Prozent)
{
fZahl+fZahl/100*Prozent;
}
|
versucht, hat auch nicht geklappt. (warning C4552: '+' : Operator hat keine Auswirkungen; Operator mit Seiteneffekt erwartet --- error C4716: 'addProzent' : Muß einen Wert zurückgeben --- blablabla zurückgeben "ICH WEISS! ABER WIE *KopfaufdieTastaturhau*")
und da war mein Fehler (hier korrigiert):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
int main ()
{
int Prozent = 0;
int Zahl = 0;
float fZahl = 0;
cout << "Bitte Starke eingeben: ";
cin >> Zahl;
cout << "Bitte Geschwindigkeit eingeben: ";
cin >> fZahl;
cout << "Bitte Prozente eingeben: ";
cin >> Prozent;
cout << "\n\n\nStaerke vorher: " << Zahl << endl;
cout << "Geschwindigkeit vorher: " << fZahl;
Zahl = addProzent (Zahl, Prozent);
fZahl = addProzent (fZahl, Prozent);
cout << "\n\n\nStaerke nachher: " << Zahl << endl;
cout << "Geschwindigkeit nachher: " << fZahl << endl;
return 0;
}
|
und schon klappt es mit der umrechnung - die Zuordnung hat gefehlt. War jedenfalls bei mir der Fehler, nicht das returnen... oder aber ich bin zu doof und sehe den Weg ohne dieses Zuordnen nicht?
Danke Jungs, super Arbeit die ihr hier im Forum leistet. Das meiste verwirrt mich zwar zusätzlich, aber in all der Zeit wo ich hier verwirrt versucht habe Informationen aus euren zum Teil sehr Komplexen Antworten rauszusuchen, habe ich viel gelernt.
Vielleicht hilft ja mein bescheidener Noob Beitrag einem andern Anfänger, der genau den gleichen Fehler gemacht hat wie ich...