Hallo zusammen,
ich schriebe gerade ein Programm zur Berechnung der Quersummer eine beliebigen ganzen Zahl und aus irgendeinem Grund kommt immer „0“ raus… ich finde den Fehler nicht
Vielleciht kann mir ja jemand helfen 
#include <iostream>
using namespace std;
int quer(int zahl)
{
int quersum;
int stelle;
bool end = false;
while (end = false)
{
stelle = zahl % 10;
if (stelle == 0 && zahl / 10 == 0)
{
return quersum;
end = true;
}
else
{
quersum += stelle;
zahl = zahl/10;
}
}
}
int main ()
{
int zahl;
cout << „Bitte geben Sie eine ganzzahlige Zahl ein deren Quersumme Sie ermitteln moechten!“ << endl;
while (!(cin >> zahl))
{
cout << "Das war leider keine ganze Zahl! Probieren sie es erneut! > ";
cin.clear();
cin.ignore(256,’\n’);
}
cout << "Die Quersumme betraegt " << quer(zahl) << endl;
system („pause“);
return 0;
}
vielen dank
Hi,
in Vergleichen mit einer Konstanten, schreibe immer die Konstante zuerst. Dann würde schon der Compiler bei
while(false = end)
anmerken, dass diese Zuweisung nicht möglich ist. Du willst
while(false == end)
schreiben.
Gruß, Lutz
danke für eure Antworten…
haben mir sehr geholfen und es geht jetzt 
habe das geändert:
int quersum=0;
int stelle;
bool end = false;
while (false == end)
und es geht jetzt!!
weiß zwar immernoch nicht so genau wo hier der Fehler liegt:
quersum += stelle; /\* \<-- auch hier ist ein fundamentaler Fehler
vielleichst kannst du es mir noch verraten Achim.
aber vielen Dank für eure Antworten.
lg patte
Hallo Patte,
habe das geändert:
int quersum =0 ;
da du beide Fehler korrigiert hast, gibt es keinen weiteren. Ein guter Compiler in hoher Warnstufe oder z.B. Lint zum prüfen des Programms wird bei
quersum += stelle; /\*
etwas anmerken wie: "quersum nicht initialisiert vor erster Verwendung".
Da die Intention ja eine beliebige sein konnte, tritt der Fehler erst an dieser Stelle auf, auch wenn meist zusätzlich an die Zeile der Definition verwiesen wird.
Gruß
achim