<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Problem mit for Schleife]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich studiere gerade Wirtschaftsinformatik im ersten Semester und irgendwie scheinen mir for-Schleifen nicht zu liegen. Bisher bin ich zwar mit einiger Anstrengung zurecht gekommen, aber hier weiß ich echt nicht weiter. Hier mal der Programmcode:</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;cmath&gt;<br />
using namespace std;</p>
<p>unsigned int quersummeRekursiv(unsigned long zahl) {<br />
if (zahl &lt; 10)<br />
return 0;<br />
else<br />
return zahl % 10 + quersummeRekursiv(zahl / 10);<br />
}</p>
<p>unsigned int quersummeIterativ(unsigned long zahl) {<br />
if (zahl &lt; 10)<br />
return 0;<br />
else<br />
<strong>for (unsigned long a = zahl; a &lt;= 10; a / 10) {<br />
unsigned long ergebnis = 0;<br />
ergebnis += a;</strong><br />
return ergebnis;<br />
}<br />
}</p>
<p>int main() {<br />
unsigned long zahl;<br />
cout &lt;&lt; &quot;Zahl: &quot;;<br />
cin &gt;&gt; zahl;<br />
cout &lt;&lt; &quot;Quersumme: &quot; &lt;&lt; quersummeIterativ(zahl) &lt;&lt; endl;<br />
system (&quot;pause&quot;);<br />
return 0;<br />
}</p>
<p>Mit den Rekursiven Funktionsaufruf klappt alles wunderbar, aber sobald ich dann versuche dasselbe Ergebnis mit der for Schleife zu erzielen wird immer die Zahl 16284 ausgegeben, sofern die eingegebene Zahl größer als 10 ist.</p>
<p>Ich steh echt aufn Schlauch, also bitte helft mir. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/132587/problem-mit-for-schleife</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 16:09:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/132587.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 11 Jan 2006 23:04:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit for Schleife on Wed, 11 Jan 2006 23:04:08 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich studiere gerade Wirtschaftsinformatik im ersten Semester und irgendwie scheinen mir for-Schleifen nicht zu liegen. Bisher bin ich zwar mit einiger Anstrengung zurecht gekommen, aber hier weiß ich echt nicht weiter. Hier mal der Programmcode:</p>
<p>#include &lt;iostream&gt;<br />
#include &lt;cmath&gt;<br />
using namespace std;</p>
<p>unsigned int quersummeRekursiv(unsigned long zahl) {<br />
if (zahl &lt; 10)<br />
return 0;<br />
else<br />
return zahl % 10 + quersummeRekursiv(zahl / 10);<br />
}</p>
<p>unsigned int quersummeIterativ(unsigned long zahl) {<br />
if (zahl &lt; 10)<br />
return 0;<br />
else<br />
<strong>for (unsigned long a = zahl; a &lt;= 10; a / 10) {<br />
unsigned long ergebnis = 0;<br />
ergebnis += a;</strong><br />
return ergebnis;<br />
}<br />
}</p>
<p>int main() {<br />
unsigned long zahl;<br />
cout &lt;&lt; &quot;Zahl: &quot;;<br />
cin &gt;&gt; zahl;<br />
cout &lt;&lt; &quot;Quersumme: &quot; &lt;&lt; quersummeIterativ(zahl) &lt;&lt; endl;<br />
system (&quot;pause&quot;);<br />
return 0;<br />
}</p>
<p>Mit den Rekursiven Funktionsaufruf klappt alles wunderbar, aber sobald ich dann versuche dasselbe Ergebnis mit der for Schleife zu erzielen wird immer die Zahl 16284 ausgegeben, sofern die eingegebene Zahl größer als 10 ist.</p>
<p>Ich steh echt aufn Schlauch, also bitte helft mir. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/964133</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964133</guid><dc:creator><![CDATA[P*trick]]></dc:creator><pubDate>Wed, 11 Jan 2006 23:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit for Schleife on Thu, 12 Jan 2006 00:15:20 GMT]]></title><description><![CDATA[<p>Erstmal herzlich willkommen als Winfer,<br />
nun zu deinem Problem. Erstmal grundsätzlich: Fällt dir an dem Code unten etwas auf, er ist durch die Funktionen des Forums in dieser ansprechenden Optik gestaltet worden <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":-)"
      alt="🙂"
    /> ( bitte beim nächsten mal Cpp-Tags benutzen)<br />
Und dann hab ich mir noch die kleine Mühe gemacht den Code ein wenig einzurücken, das war bei uns damals aber schon im 1. Semester Wirtschaftsinformatik dran. Nun mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cmath&gt;
using namespace std;

unsigned int quersummeRekursiv(unsigned long zahl) {
   if (zahl &lt; 10)
      return zahl;
   else
       return zahl % 10 + quersummeRekursiv(zahl / 10);
}

unsigned int quersummeIterativ(unsigned long zahl) {
   if (zahl &lt; 10)
       return zahl;
   else {
       unsigned long ergebnis = 0;
       unsigned long a;
       for (a = zahl; a &gt;= 10; a = a/10) ergebnis += a%10;
       ergebnis += a;
       return ergebnis;}

}

int main() {
    unsigned long zahl;
    cout &lt;&lt; &quot;Zahl: &quot;;
    cin &gt;&gt; zahl;
    cout &lt;&lt; &quot;Quersumme: &quot; &lt;&lt; quersummeIterativ(zahl) &lt;&lt; endl;
    system (&quot;pause&quot;);
    return 0;
}
</code></pre>
<p>Ich hab auch mal deine Funktion für rekursiv geändert, hab sie aber nicht getestet. Meiner Meinung nach ist bei Zahlen unter 10 die Quersumme gleich der Zahl.<br />
Bei deinem Code war zum Beispiel ein Problem das die Funktion bei einer Zahl über zehn nie zu einer return- Anweisung gekommen ist weil sie die for-Schleife nie betreten hat wegen a &lt;= 10, da a ja immer größer als 10 war. Die Berechnung der Quersumme war dann noch etwas fehlerhaft, aber das Problem mit der Abbruchbedingung war wohl das, was dich nicht hat vorwärts kommen lassen.</p>
<p>MfG Jaschi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964148</guid><dc:creator><![CDATA[Jaschi]]></dc:creator><pubDate>Thu, 12 Jan 2006 00:15:20 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit for Schleife on Thu, 12 Jan 2006 07:47:22 GMT]]></title><description><![CDATA[<p>Danke erstmal für die überaus schnelle Hilfe. Jetzt läuft das Programm, jedoch sind mir einige Passagen noch unklar.</p>
<pre><code>for (a = zahl; [b]a &gt;= 10[/b]; a = a/10)
</code></pre>
<p>Wieso ist die Abbruchbedingung so gewählt? Ist es also so das wenn diese Bedingung nicht mehr gilt, die Schleife abgebrochen wird? Wenn dem so ist, dann erklärt das natürlich wieso ich immer wieder Probleme mit der Schleife hab.</p>
<pre><code class="language-cpp">ergebnis += a;
</code></pre>
<p>Wieso wurde wurde diese Zeile hinzugefügt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964200</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964200</guid><dc:creator><![CDATA[P*trick]]></dc:creator><pubDate>Thu, 12 Jan 2006 07:47:22 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit for Schleife on Thu, 12 Jan 2006 07:50:05 GMT]]></title><description><![CDATA[<p>P@trick schrieb:</p>
<blockquote>
<pre><code>for (a = zahl; [b]a &gt;= 10[/b]; a = a/10)
</code></pre>
<p>Wieso ist die Abbruchbedingung so gewählt? Ist es also so das wenn diese Bedingung nicht mehr gilt, die Schleife abgebrochen wird?</p>
</blockquote>
<p>Jo das ist nicht die Abbruchbedingung, sondern ne Weitmachbedingung^^ So lange wie a größer gleich 10 ist führe diesen Code aus</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964204</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964204</guid><dc:creator><![CDATA[Pellaeon]]></dc:creator><pubDate>Thu, 12 Jan 2006 07:50:05 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit for Schleife on Thu, 12 Jan 2006 10:27:23 GMT]]></title><description><![CDATA[<p>Hallo,<br />
wegen dem</p>
<pre><code class="language-cpp">ergebnis += a;
</code></pre>
<p>Das steht so hinter der for-Schleife weil die for Schleife ja in dem Fall nur läuft, solange a &gt;= 10 ist. und deswegen noch die letzte Zahl (die die ganz vorne steht hinzugerechnet werden muss. Aber eigentlich müsste auch das funktionieren:</p>
<pre><code class="language-cpp">//nicht getestet
for(unsigned long a = zahl ; a &gt;=1; a /=10) ergebnis += a%10;
</code></pre>
<p>dann kanste dieses</p>
<pre><code class="language-cpp">ergebnis += a;
</code></pre>
<p>auch weglassen.</p>
<p>MfG Jaschi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964351</guid><dc:creator><![CDATA[Jaschi]]></dc:creator><pubDate>Thu, 12 Jan 2006 10:27:23 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit for Schleife on Thu, 12 Jan 2006 12:09:11 GMT]]></title><description><![CDATA[<p>Im Grunde würde ich sagen eignet sich eine while-Schleife hier besser</p>
<pre><code class="language-cpp">while(zahl) {
    summe += zahl % 10;
    zahl /= 10;
}
</code></pre>
<p>Oder sogar so <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<pre><code class="language-cpp">do summe+=zahl%10; while(zahl/=10);
</code></pre>
<p>Gruß</p>
]]></description><link>https://www.c-plusplus.net/forum/post/964450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/964450</guid><dc:creator><![CDATA[FireFlow]]></dc:creator><pubDate>Thu, 12 Jan 2006 12:09:11 GMT</pubDate></item></channel></rss>