<?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[rekusive Funktion]]></title><description><![CDATA[<p>Hallo,</p>
<p>und zwar soll ich in Programmierungstechnik eine Funktion schreiben, die sich selbst aufruft, also rekusiv. Diese Funktion soll die Quersumme einer Zahl berechnen. Um auch sehr große Zahle berechnen zu können wollte ich die eingegebene Zahl in ein String speichern.</p>
<pre><code class="language-cpp">int einlesen(char ,int , int);

int main()
{
  // Programm Quersumme bestimmen

	char str[1000]=&quot;Testlauf&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben.&quot;;

  int a = einlesen(str[strlen(str)], strlen(str), 0);

  return 0;
};

int einlesen(char CString[],int n, int Ergi){
    if (n &lt;= 1){
        //
        return Ergi;    
    }
    else{
        int lala = (int)(CString[--n]);
        return einlesen(CString, n,  Ergi += (48 - lala));
    }
};
</code></pre>
<p>Nach meinem Verständins her sollte es laufen, aber der Compiler(Microsoft Visual C++ 2005 EE) sieht das leider anders. Meldung &quot;error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;int __cdecl einlesen(char,int,int)&quot; (?einlesen@@YAHDHH@Z)&quot; in Funktion &quot;_main&quot;.&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ich weiß leider nicht mehr weiter, kann mir vielleicht einer sagen was ich falsch mache? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Ich habe jetzt schon mehre möglichkeiten probiert, leider ohne Erfolg. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/209570/rekusive-funktion</link><generator>RSS for Node</generator><lastBuildDate>Tue, 13 Oct 2026 04:33:14 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/209570.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Apr 2008 10:19:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 10:19:04 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>und zwar soll ich in Programmierungstechnik eine Funktion schreiben, die sich selbst aufruft, also rekusiv. Diese Funktion soll die Quersumme einer Zahl berechnen. Um auch sehr große Zahle berechnen zu können wollte ich die eingegebene Zahl in ein String speichern.</p>
<pre><code class="language-cpp">int einlesen(char ,int , int);

int main()
{
  // Programm Quersumme bestimmen

	char str[1000]=&quot;Testlauf&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben.&quot;;

  int a = einlesen(str[strlen(str)], strlen(str), 0);

  return 0;
};

int einlesen(char CString[],int n, int Ergi){
    if (n &lt;= 1){
        //
        return Ergi;    
    }
    else{
        int lala = (int)(CString[--n]);
        return einlesen(CString, n,  Ergi += (48 - lala));
    }
};
</code></pre>
<p>Nach meinem Verständins her sollte es laufen, aber der Compiler(Microsoft Visual C++ 2005 EE) sieht das leider anders. Meldung &quot;error LNK2019: Verweis auf nicht aufgelöstes externes Symbol &quot;&quot;int __cdecl einlesen(char,int,int)&quot; (?einlesen@@YAHDHH@Z)&quot; in Funktion &quot;_main&quot;.&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /> ich weiß leider nicht mehr weiter, kann mir vielleicht einer sagen was ich falsch mache? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Ich habe jetzt schon mehre möglichkeiten probiert, leider ohne Erfolg. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484301</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484301</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Tue, 01 Apr 2008 10:19:04 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 10:22:18 GMT]]></title><description><![CDATA[<p>Es muss</p>
<pre><code class="language-cpp">int einlesen(char* ,int , int);
</code></pre>
<p>oder</p>
<pre><code class="language-cpp">int einlesen(char a[],int , int);
</code></pre>
<p>über der Main-Funktion heißen...</p>
<p>Dann ist aber auch noch Zeile 12 falsch.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484303</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484303</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 Apr 2008 10:22:18 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 10:22:15 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int einlesen(char* ,int , int);
</code></pre>
<p>meh too late <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_tongue"
      title=":P"
      alt="😛"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484304</guid><dc:creator><![CDATA[sothis_]]></dc:creator><pubDate>Tue, 01 Apr 2008 10:22:15 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 15:49:58 GMT]]></title><description><![CDATA[<p>Danke für die Antworten <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="🙂"
    /><br />
wenn ich es abänder zeigt er leider dann ein anderes Problem an.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int einlesen(char* ,int , int);

int main()
{
  // Programm Quersumme bestimmen
  //Cquer quersumme123;
	char str[1000]=&quot;Arschkatze*&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben.&quot;;

  int a = einlesen(&amp;str, strlen(str), 0);

  return 0;
};

int einlesen(char* CString[],int n, int Ergi){
    if (n &lt;= 1){
        //
        return Ergi;    
    }
    else{
        int lala = (int)(*CString[--n]);
        einlesen(*CString, n,  Ergi += (48 - lala));
    }
};
</code></pre>
<p>Medlung &quot;error C2664: 'einlesen': Konvertierung des Parameters 1 von 'char (*__w64 )[1000]' in 'char *' nicht möglich&quot; <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484611</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484611</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:49:58 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 15:52:56 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int einlesen(char* CString[],int n, int Ergi)
</code></pre>
<p>Lass hier die Klammern weg.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484614</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:52:56 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 15:58:04 GMT]]></title><description><![CDATA[<p>Also noch mal:<br />
entweder &quot;char *cstring&quot; (bzw. besser sogar &quot;const char *cstring&quot;) oder<br />
&quot;char cstring[]&quot; (bzw. &quot;const char cstring[]&quot;)<br />
... und dies bei beiden Funktionsköpfen (Deklaration und Definition).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484618</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:58:04 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 15:59:52 GMT]]></title><description><![CDATA[<p>Am besten std::string!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484619</guid><dc:creator><![CDATA[*D*]]></dc:creator><pubDate>Tue, 01 Apr 2008 15:59:52 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 16:52:36 GMT]]></title><description><![CDATA[<p>Klappt es so?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int einlesen(char* ,int , int);

int main()
{
  // Programm Quersumme bestimmen
  //Cquer quersumme123;
	char str[1000]=&quot;Arschkatze*&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben.&quot;;

  int a = einlesen(str, strlen(str), 0); // (GEAENDERT)

  return 0;
};

int einlesen(char* CString,int n, int Ergi){ // (GEAENDERT)
    if (n &lt;= 1){
        //
        return Ergi;    
    }
    else{
        int lala = (int)(*CString[--n]);
        einlesen(CString, n,  Ergi += (48 - lala)); // (GEAENDERT)
    }
};
</code></pre>
<p>Was ich mich frage: Was soll das ganze?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484656</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484656</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 Apr 2008 16:52:36 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Wed, 02 Apr 2008 05:06:49 GMT]]></title><description><![CDATA[<p>super Danke <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="🙂"
    /> , er compiliert das Programm jetzt ohne Fehler. Aber es scheint das ich noch ein Logikfehler oder ähnliches drin habe.</p>
<p>Beim susführen erscheinen die Meldungen:</p>
<p>&quot;&quot;pt2-1.exe&quot;: &quot;C:\kopie server\Schule\Studium\Programmierung\c\pt2-1\debug\pt2-1.exe&quot; geladen, Symbole wurden geladen.<br />
&quot;pt2-1.exe&quot;: &quot;C:\WINDOWS\system32\ntdll.dll&quot; geladen, Keine Symbole geladen.<br />
&quot;pt2-1.exe&quot;: &quot;C:\WINDOWS\system32\kernel32.dll&quot; geladen, Keine Symbole geladen.<br />
&quot;pt2-1.exe&quot;: &quot;C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcp80d.dll&quot; geladen, Keine Symbole geladen.<br />
&quot;pt2-1.exe&quot;: &quot;C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.762_x-ww_5490cd9f\msvcr80d.dll&quot; geladen, Keine Symbole geladen.<br />
&quot;pt2-1.exe&quot;: &quot;C:\WINDOWS\system32\msvcrt.dll&quot; geladen, Keine Symbole geladen.<br />
Das Programm &quot;[4640] pt2-1.exe: Systemeigen&quot; wurde mit Code 0 (0x0) beendet.&quot;</p>
<p>PS: Was merkwürdig ist, das Ergebnis ist richt was rauskommt, nur negativ statt positv. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /><br />
Wenn ich ein anderen Compiler verwende(Dev-C++ zeigt er beim compilieren und beim ausführen keine direkten Fehler an), die Werte sind wieder neg. und das diesmal beim letzten Funktionsaufruf eine falsche Zahl erscheint.</p>
<blockquote>
<p>Was ich mich frage: Was soll das ganze?</p>
</blockquote>
<p>Wir sollen halt üben wie man eine rekusive Funktion schreibt(also eine Funktion die sich selbst aufruft).</p>
<p>Bei jedem Funktionsaufruf werden die aktuellen Variablen im ,,Stack‘‘ gespeichert.</p>
<p>Der Vorteil ist glaub ich das die Berechnung schneller erfolgt als bei einer normalen Fnktion <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
<pre><code class="language-cpp">int einlesen(char[],int , int);
int main()
{
  // Programm Quersumme bestimmen
  char str[1000]=&quot;123456&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben.&quot;;

  int a = einlesen(str, strlen(str), 0);
  cout &lt;&lt; &quot;Ende: &quot; &lt;&lt; a;
  return 0;
};

int einlesen( char CString[],int n, int Ergi){
    if (n == 0){
        return Ergi;    
    }
    else{
		int lala = (int)(CString[--n]);
		cout &lt;&lt; &quot;\nOut: &quot; &lt;&lt; Ergi;
        einlesen(CString, n,  Ergi += (48 - lala));
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1484670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484670</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Wed, 02 Apr 2008 05:06:49 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Tue, 01 Apr 2008 17:20:37 GMT]]></title><description><![CDATA[<p>Für mich sieht das so aus, als würde der Debugger einige Symbole aus deinem Programm nicht laden können. Das sollte aber kein Problem mit deinem Programm sein. Bin mir aber nicht sicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1484682</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1484682</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Tue, 01 Apr 2008 17:20:37 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Wed, 02 Apr 2008 18:18:41 GMT]]></title><description><![CDATA[<p>Du addierst ja auch negative Werte.<br />
Nimm &quot;lala - 48&quot; bzw. &quot;lala - '0'&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485438</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 02 Apr 2008 18:18:41 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Thu, 03 Apr 2008 09:17:54 GMT]]></title><description><![CDATA[<p>fluffy17 schrieb:</p>
<blockquote>
<blockquote>
<p>Was ich mich frage: Was soll das ganze?</p>
</blockquote>
<p>Wir sollen halt üben wie man eine rekusive Funktion schreibt(also eine Funktion die sich selbst aufruft).</p>
<p>Bei jedem Funktionsaufruf werden die aktuellen Variablen im ,,Stack‘‘ gespeichert.</p>
<p>Der Vorteil ist glaub ich das die Berechnung schneller erfolgt als bei einer normalen Fnktion <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
</blockquote>
<p>Hmm. Nein, überhaupt nicht. Scheint ja sehr erfolgreicher Kurs zu sein, wenn der Sinn so klar rüberkommt. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";-)"
      alt="😉"
    /></p>
<p>Also, das ist ein Thema, mit dem Du Dich auseinandersetzen solltest: Was bringt Rekursion? Ist übrigens eine exzellente Kursfrage an den Dozenten. Wäre mal gespannt, ob er das beantworten kann.</p>
<p>Davon abgesehen finde ich Deine Rekursionsfunktion ganz schön kompliziert. Das geht in einer einzigen Zeile.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int digit_sum(string::const_iterator begin, string::const_iterator end) {
    return begin == end ? 0 : *begin - '0' + digit_sum(begin + 1, end);
}

int main(int argc, char* argv[]) {
    if (argc != 2)
        return 1;

    string number = argv[1];
    cout &lt;&lt; &quot;Quersumme: &quot; &lt;&lt; digit_sum(number.begin(), number.end()) &lt;&lt; endl;
}
</code></pre>
<p>Kompiliert und aufgerufen (auf der Konsole, hab gerade kein Windows):</p>
<pre><code>$ g++ -pedantic -Wall quer.cpp -o quer
$ ./quer 12345
Quersumme: 15
</code></pre>
<p>Hier bekommt die Rekursion ein Paar von Zeigern übergeben, nämlich das Anfang und das Ende des Strings (genauer gesagt einen Zeiger auf das erste und einen *hinter* das letzte Zeichen). In der Funktion wird dann geschaut, ob der übergebene String leer ist: dann wird 0 zurückgegeben. Ansonsten wird die erste Ziffer ermittelt ( <code>*begin - '0'</code> ) und zur Quersumme des restlichen Strings addiert (ah, Rekursion!). Der „restliche String“ wird einfach dadurch ausgedrückt, dass der Beginn-Zeiger um eins erhöht wird, also auf das nächste Zeichen weitergerückt wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1485668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1485668</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Thu, 03 Apr 2008 09:17:54 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Thu, 03 Apr 2008 19:14:41 GMT]]></title><description><![CDATA[<p>also dein Quelltext ist wirklich sehr kurz ^^<br />
Ich habe die Formel bei meinem Quelltext abgeändert und jetzt ist es in positven Bereich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> Danke schön</p>
<p>Am Montag habe ich wieder Vorlesung bei Prof. da werde ich nochmal nachfragen wenn sich die Möglichkeit dafür ergibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486034</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486034</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Thu, 03 Apr 2008 19:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Fri, 04 Apr 2008 11:18:38 GMT]]></title><description><![CDATA[<p>Noch eine &quot;komplizierte&quot; Variante:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;cstdlib&gt;
#include &lt;ctime&gt;

namespace detail {
unsigned int digit_sum_tr( char* first, char* last, unsigned int acc ) {
  return first == last
    ? acc
    : digit_sum_tr(first+1, last, acc + *first - '0'); }}

unsigned int digit_sum_tr( char* first, char* last ) {
  return detail::digit_sum_tr(first, last, 0); }

int digit_sum( char* begin, char* end ) {
    return begin == end ? 0 : *begin - '0' + digit_sum(begin + 1, end);
}

inline int random( int min, int max ) { return min + std::rand() / (RAND_MAX / (max - min) + 1 ); }
char make_random_digit()              { return static_cast&lt;char&gt;(random('0', '9')); }

int main() {
  std::srand(std::time(0));
  std::size_t const ndigits = 1000000;
  std::vector&lt;char&gt; number(ndigits);
  std::generate_n(number.begin(), ndigits, make_random_digit);

  std::cout &lt;&lt; &quot;digit_sum_tr:\t&quot; &lt;&lt; digit_sum_tr(&amp;number[0], &amp;number[0]+ndigits) &lt;&lt; std::endl
            &lt;&lt; &quot;digit_sum:\t&quot;    &lt;&lt; digit_sum   (&amp;number[0], &amp;number[0]+ndigits) &lt;&lt; std::endl;
}
</code></pre>
<p>Kompiliert und ausgeführt:</p>
<pre><code>digit_sum_tr:   4001537
digit_sum:
Process returned -1073741819 (0xC0000005)   execution time : 0.063 s
Press any key to continue.
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1486381</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486381</guid><dc:creator><![CDATA[&#x27;f]]></dc:creator><pubDate>Fri, 04 Apr 2008 11:18:38 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Fri, 04 Apr 2008 12:26:01 GMT]]></title><description><![CDATA[<p>Hi 'f, jetzt musst Du natürlich noch erklären, dass das Suffix 'tr' für Tail Recursion steht und warum das so einen enormen Unterschied macht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486419</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486419</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 04 Apr 2008 12:26:01 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Fri, 04 Apr 2008 17:23:32 GMT]]></title><description><![CDATA[<p><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="🙂"
    /> ich habe heute noch ein Feedback zu meinem Programm bekommen, das die Funktion noch nicht rekursiv war.</p>
<p>hier der abgeänderter Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string.h&gt;

using namespace std;
int einlesen(char[],int);

int main()
{
  // Programm Quersumme bestimmen
  char str[1000]=&quot;123456&quot;;

  cout &lt;&lt; &quot;Bitte Zahl eingeben: &quot;;
  cin &gt;&gt; str;

  int a = einlesen(str, strlen(str));
  cout &lt;&lt; &quot;\nEnde: &quot; &lt;&lt; (a);

  return 0;
};

int einlesen(char CString[],int n){
    if (n == 0){
        return 0;    
    }
    else{
		int lala = (int)(CString[--n])-48;
		//cout &lt;&lt; &quot;\nAddition: &quot; &lt;&lt; Ergi;
        return (lala + einlesen(CString, n));
    }
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1486653</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486653</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Fri, 04 Apr 2008 17:23:32 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Fri, 04 Apr 2008 19:00:45 GMT]]></title><description><![CDATA[<p>fluffy17 schrieb:</p>
<blockquote>
<p><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="🙂"
    /> ich habe heute noch ein Feedback zu meinem Programm bekommen, das die Funktion noch nicht rekursiv war.</p>
</blockquote>
<p>Von wem?</p>
<p>Ich kann Dir versichern, dass <em>jeder</em> bisher gepostete Code in diesem Thread rekursiv war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1486690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1486690</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Fri, 04 Apr 2008 19:00:45 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Sat, 05 Apr 2008 16:01:39 GMT]]></title><description><![CDATA[<p>Konrad Rudolph schrieb:</p>
<blockquote>
<p>fluffy17 schrieb:</p>
<blockquote>
<p><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="🙂"
    /> ich habe heute noch ein Feedback zu meinem Programm bekommen, das die Funktion noch nicht rekursiv war.</p>
</blockquote>
<p>Von wem?</p>
<p>Ich kann Dir versichern, dass <em>jeder</em> bisher gepostete Code in diesem Thread rekursiv war.</p>
</blockquote>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /><br />
wir haben in der Fachhochschule auch Übungsstunden und da hat der verantwortliche mein Programm angesehen. Er meinte das das Prinzip der Rekursion nicht zum vorschein kommt, da das Ergebnis immer wieder neu an die Funktion übergeben wird(welches bei der Rekursion nicht benötigt wird). Da er die Ergebnisse in Stack ablegt und dann wieder von hinten(also das letzte Ergebnis) bis hin zum ersten addiert.<br />
<a href="http://grapen-stieten.de/mibt/aufgabe1.pdf" rel="nofollow">http://grapen-stieten.de/mibt/aufgabe1.pdf</a></p>
<p>Vorher hat er beim letzten aufruf der Funktion, das Ergebnis ausgegeben. Und ist den Weg nicht wieder zurück gegangen, (also er hat es nicht so berechnet wie es in Stack abgelegt wurde).<br />
Nach der Zeichung hat er das Ergebnis bereits bei den Punkt &quot;abbruch der Rekursion&quot; zurüchkegeben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487032</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487032</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Sat, 05 Apr 2008 16:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Sat, 05 Apr 2008 22:42:35 GMT]]></title><description><![CDATA[<p>Dann hast du ihn entweder falsch verstanden, oder &quot;der Verantwortliche&quot; hat keine Ahnung wovon er spricht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487199</guid><dc:creator><![CDATA[&#x27;f]]></dc:creator><pubDate>Sat, 05 Apr 2008 22:42:35 GMT</pubDate></item><item><title><![CDATA[Reply to rekusive Funktion on Sun, 06 Apr 2008 12:57:16 GMT]]></title><description><![CDATA[<p>Also ich denke schon das ich ihn richtig verstanden habe.<br />
Er hat mir die Funktionaufrufe auch aufgemalt und meinte &quot;ab den Punkt bricht er bei dir die Rekursion ab und geht den weg nicht wieder zurück&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1487370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1487370</guid><dc:creator><![CDATA[fluffy17]]></dc:creator><pubDate>Sun, 06 Apr 2008 12:57:16 GMT</pubDate></item></channel></rss>