<?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[Quersummenprogramm funktioniert nicht]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wer findet den Fehler? <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="😉"
    /> Bei höheren Integer-Werten funktioniert das Programm nicht mehr richtig, es werden falsche Zahlen in den Array geschrieben..</p>
<p>Danke schonmal <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>
<pre><code>#include&lt;iostream&gt;
#include&lt;stdio.h&gt;
#include&lt;math.h&gt;

/*** Berechnet die Quersumme eines Integers ***/
int qs(int x)       {
    int maxlength = 10;
    int qs = 0;
    int arr[maxlength];
    for(int i = maxlength-1; i &gt;= 0; i--)     {                 /* Array erstellen */
        arr[i] = (int) (x/pow(10,i));                           // 5623 : 10^5 = 0,5623 ~ 0;   5623 : 10^4 = 5,623 ~ 5 beim Konvertieren
        x = x - arr[i]*pow(10,i);                               // 5623 - 5000 = 623
    }

    printf(&quot;\n x = &quot;);                                          /* Array drucken */
    for(int i = maxlength-1; i &gt;= 0; i--)          {
        printf(&quot;%i &quot;, arr[i]);
    }

    printf(&quot;\n&quot;);
    for(int i = 0; i &lt; maxlength; i++)          {               /* Array aufsummieren */
        qs = qs + arr[i];
    }
    return qs;
}

int main()          {
    int x = 1265;
    int y = qs(x);
    printf(&quot; Quersumme: %i \n \n&quot;, y);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/328368/quersummenprogramm-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Jul 2026 18:41:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328368.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 05 Oct 2014 20:58:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Sun, 05 Oct 2014 20:58:13 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>wer findet den Fehler? <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="😉"
    /> Bei höheren Integer-Werten funktioniert das Programm nicht mehr richtig, es werden falsche Zahlen in den Array geschrieben..</p>
<p>Danke schonmal <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>
<pre><code>#include&lt;iostream&gt;
#include&lt;stdio.h&gt;
#include&lt;math.h&gt;

/*** Berechnet die Quersumme eines Integers ***/
int qs(int x)       {
    int maxlength = 10;
    int qs = 0;
    int arr[maxlength];
    for(int i = maxlength-1; i &gt;= 0; i--)     {                 /* Array erstellen */
        arr[i] = (int) (x/pow(10,i));                           // 5623 : 10^5 = 0,5623 ~ 0;   5623 : 10^4 = 5,623 ~ 5 beim Konvertieren
        x = x - arr[i]*pow(10,i);                               // 5623 - 5000 = 623
    }

    printf(&quot;\n x = &quot;);                                          /* Array drucken */
    for(int i = maxlength-1; i &gt;= 0; i--)          {
        printf(&quot;%i &quot;, arr[i]);
    }

    printf(&quot;\n&quot;);
    for(int i = 0; i &lt; maxlength; i++)          {               /* Array aufsummieren */
        qs = qs + arr[i];
    }
    return qs;
}

int main()          {
    int x = 1265;
    int y = qs(x);
    printf(&quot; Quersumme: %i \n \n&quot;, y);
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2420905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420905</guid><dc:creator><![CDATA[ihaveaquestion]]></dc:creator><pubDate>Sun, 05 Oct 2014 20:58:13 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Sun, 05 Oct 2014 21:06:47 GMT]]></title><description><![CDATA[<p>Entscheide dich, ob du C oder C++ programmieren willst (sind zwei verschiedene Sprachen). Im Moment programmierst du C in C++.</p>
<p>Du Quersumme kann viel einfacher berechnet werden mit</p>
<pre><code>int digit_sum(int x)
{
    int dsum = 0;
    while ( x &gt; 0 )
    {
        dsum += x % 10;
        x /= 10;
    }

    return dsum;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2420906</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420906</guid><dc:creator><![CDATA[icarus2]]></dc:creator><pubDate>Sun, 05 Oct 2014 21:06:47 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 09:13:59 GMT]]></title><description><![CDATA[<p>Wenn ich genau den gleichen Code in C compiliere, funktioniert das dann? Ich dachte die ganzen includes wären nur für C++?</p>
<p>Hast du mir auch eine Lösung für C? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2420940</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420940</guid><dc:creator><![CDATA[ihaveaquestion]]></dc:creator><pubDate>Mon, 06 Oct 2014 09:13:59 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 09:35:15 GMT]]></title><description><![CDATA[<p>Du mischt C und C++, bzw. du missbrauchst die Eigenschaft deines C++ Compilers C Quelltext zu übersetzen, weil du in deinen C++ Quelltext C Techniken/Funktionen benutzt.</p>
<p>Die Header <code>stdio.h</code> und <code>math.h</code> sind C-Header, <code>iostream</code> ist ein C++ Header. Die Header der STL haben in der Regel keine Dateiendung, während die C-Header auf .h enden. Die C++ Pendants der C-Header haben ein c vorangstellt und keine Dateiendung ( <code>stdio.h</code> =&gt; <code>cstdio</code> ).</p>
<p>Ein- und Ausgaben in C++ realisiert man über streams, z.b. <code>cin/cout</code> , in C benutzt man dafür <code>scanf</code> und <code>printf</code> .</p>
<p>Hast du dir das selbst so beigebracht oder kommt das aus einem Buch/Tutorial/Kurs?</p>
<p>Edit: Typos</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420944</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420944</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 06 Oct 2014 09:35:15 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 09:44:09 GMT]]></title><description><![CDATA[<p>Hey <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>Alles selbst beigebracht, habe es ohne Kurs für die Uni benötigt.<br />
Wenn ich nun nur ein Programm (kein OOP) benötige, das aber in Konsole sowie Datei ausgeben können soll, ist wohl C und nicht C++ die Sprache meiner Wahl, richtig?</p>
<p>Wie gebe ich dann in C in eine txt aus? Das mache ich bis jetzt mit &lt;iostream&gt; und schließlich mit</p>
<pre><code>std::ofstream name;
name.open(&quot;Name.txt&quot;);
name &lt;&lt; &quot;Hier steht der Text.&quot;;
</code></pre>
<p>aber das ist ja dann C++?</p>
<p>Danke für die Hilfe <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="😉"
    /><br />
Trotzdem interessiert mich dann die C-Lösung der Quersumme <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2420948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420948</guid><dc:creator><![CDATA[ihaveaquestion]]></dc:creator><pubDate>Mon, 06 Oct 2014 09:44:09 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 09:51:05 GMT]]></title><description><![CDATA[<blockquote>
<p>Trotzdem interessiert mich dann die C-Lösung der Quersumme</p>
</blockquote>
<p>Der &quot;Rechenweg&quot; bleibt der Gleiche. Bisschen Modulo und bisschen Dividieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420950</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420950</guid><dc:creator><![CDATA[beg_]]></dc:creator><pubDate>Mon, 06 Oct 2014 09:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 11:48:19 GMT]]></title><description><![CDATA[<p>ihaveaquestion schrieb:</p>
<blockquote>
<p>Wenn ich nun nur ein Programm (kein OOP) benötige, das aber in Konsole sowie Datei ausgeben können soll, ist wohl C und nicht C++ die Sprache meiner Wahl, richtig?</p>
</blockquote>
<p>Das ist total Latte, du kommst mit beiden Sprachen zum Ziel. Ob das resultierende Executable jetzt 200K kleiner ist, weil die C-Runtime schlanker ist als die C++ Runtime spielt doch überhaupt keine Rolle. Und: Man <em>kann</em> in C++ objektorientiert programmieren, man <em>muss</em> es aber nicht. C++ ist eine Multiparadigmen-Sprache, in der man auch funktional programmieren kann.</p>
<p>Im Übrigen hat Icarus2 doch schon die Lösung gepostet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2420962</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2420962</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 06 Oct 2014 11:48:19 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Mon, 06 Oct 2014 19:02:42 GMT]]></title><description><![CDATA[<p>ihaveaquestion schrieb:</p>
<blockquote>
<p>Wenn ich nun nur ein Programm (kein OOP) benötige, das aber in Konsole sowie Datei ausgeben können soll, ist wohl C und nicht C++ die Sprache meiner Wahl, richtig?</p>
</blockquote>
<p>Wenn ein Programm so klein ist, benutze ich normalerweise eine Skriptsprache. Ansonsten finde ich aber auch fuer kleine Programme C++ angenehmer, denn wenn ich mal schnell einen String verarbeiten will, habe ich keine Lust, einen extra-buffer dafuer anzulegen und manuell Speicher zu reservieren, sondern nutze die Stringklasse.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2421030</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2421030</guid><dc:creator><![CDATA[Marthog]]></dc:creator><pubDate>Mon, 06 Oct 2014 19:02:42 GMT</pubDate></item><item><title><![CDATA[Reply to Quersummenprogramm funktioniert nicht on Tue, 07 Oct 2014 07:35:57 GMT]]></title><description><![CDATA[<p>icarus2 schrieb:</p>
<blockquote>
<p>Du Quersumme kann viel einfacher berechnet werden ...</p>
</blockquote>
<p>kann man einfach machen, muss man aber nicht. Anbei eine overengineerte Lösung in C++:</p>
<pre><code>#include &lt;boost/iterator/iterator_adaptor.hpp&gt;
#include &lt;numeric&gt;  // accumulate
#include &lt;iostream&gt;

// -- dieser Iterator läuft über die Ziffern einer Zahl 'number'&gt;0 im Dezimalsystem
class Digits10 : public boost::iterator_adaptor&lt; Digits10, int, int, boost::forward_traversal_tag, int, std::ptrdiff_t &gt;
{
public:
    explicit Digits10( int number = 0 )
        : iterator_adaptor( number )
    {}

    friend boost::iterator_core_access;
private:
    void increment()
    {
        base_reference() /= 10;
    }
    int dereference() const
    {
        return base() % 10;
    }
};

int main()
{
    using namespace std;
    for( int number; cin &gt;&gt; number; )
        cout &lt;&lt; &quot;Quersumme=&quot; &lt;&lt; accumulate( Digits10(number), Digits10(), 0 ) &lt;&lt; endl;
    return 0;
}
</code></pre>
<p><img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2421092</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2421092</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 07 Oct 2014 07:35:57 GMT</pubDate></item></channel></rss>