<?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 int, long, double]]></title><description><![CDATA[<p>Also so viel zum Programm:</p>
<p>Wenn die Zahl&lt;10 = berechne Fakultät<br />
Wenn die Zahl&gt;10 = berechen Fakultät oder Quersumme<br />
Wenn die Zahl&gt;99 = berechne Quersumme</p>
<p>Das problem ist aber das ich mit int und long keine fakultät von 56 berechnen kann.<br />
Bei double wird er bei jeglichen Divisionsoperationen aus der Reihe springen, weil ich eigentlich mit ganzzahligen Typen rechnen will, double aber ein Fließkommadatentyp ist.</p>
<p>hier der quelltext:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
//Funktions Prototypen zur Bekanntmachung !
int fakultaet (long);
int quersumme(long);

using namespace std;

int main () {
    long fak=0,quer=0,zahl,eingabe;

    cout &lt;&lt; &quot;Mit diesem Programm koennen sie die Fakultaet oder die Qersumme berechnen : \n\n&quot;&lt;&lt;endl;
    cout &lt;&lt; &quot;Bitte eine positive Zahl eingeben: &quot;&lt;&lt;endl;
    cin &gt;&gt; zahl;

    if (zahl &lt; 0) {
       cout &lt;&lt; &quot;Neg. Zahlen nicht unterstuetzt!&quot;&lt;&lt; endl;
    }

    else {
         if (zahl&gt;=100) {
            quer=quersumme(zahl);
            cout&lt;&lt;&quot;Quersumme: &quot;&lt;&lt;quer&lt;&lt;endl;
         }
         else {
              if(zahl&gt;=10) {
                           //also erstmal: ist egal ob zwei oder irgend eine andere zahl zwischen 2 und 32767 eingegeben wird es würde immer fak berehcnet werden..
                           //problem an der geschichte mit der fakultät ist die max größe von 32767 welche bereits bei 8! überschritten wird !
                           cout&lt;&lt; &quot;Wollen sie die Quersumme(Option:1) errechnet haben, oder die Fakultaet(Option:2) der eingegeben Zahl?&quot;&lt;&lt;endl;
                           cin&gt;&gt;eingabe;

                           if(eingabe==1) {
                                quer=quersumme(zahl);
                                cout&lt;&lt;&quot;Quersumme: &quot;&lt;&lt;quer&lt;&lt;endl;
                           }
                           else {
                                fak=fakultaet(zahl);
                                cout&lt;&lt;&quot;Fakultaet: &quot;&lt;&lt;fak&lt;&lt;endl;
                           }
                }
                else {
                     fak=fakultaet(zahl);
                     cout&lt;&lt;&quot;Fakultaet: &quot;&lt;&lt;fak&lt;&lt;endl;
                }
         }
         system(&quot;PAUSE&quot;);
         return 0;
    }
}

int fakultaet(long zahl) {   
    long i,fakult;
    fakult = zahl;

// i läuft von n bis zur 1
    if (zahl == 0) {
       fakult = 1;
    }
	else {
		for (i=zahl-1;i&gt;1; i--) {
		    fakult = fakult * i;
		}
    }
    return fakult;
}

int quersumme (long zahl) {
    long quer = 0;

    while (zahl &gt; 0) {
        quer+= zahl % 10;
        zahl /= 10;
    }

    return quer;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/133274/problem-mit-int-long-double</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 20:27:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/133274.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 16 Jan 2006 15:13:47 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Problem mit int, long, double on Mon, 16 Jan 2006 15:13:47 GMT]]></title><description><![CDATA[<p>Also so viel zum Programm:</p>
<p>Wenn die Zahl&lt;10 = berechne Fakultät<br />
Wenn die Zahl&gt;10 = berechen Fakultät oder Quersumme<br />
Wenn die Zahl&gt;99 = berechne Quersumme</p>
<p>Das problem ist aber das ich mit int und long keine fakultät von 56 berechnen kann.<br />
Bei double wird er bei jeglichen Divisionsoperationen aus der Reihe springen, weil ich eigentlich mit ganzzahligen Typen rechnen will, double aber ein Fließkommadatentyp ist.</p>
<p>hier der quelltext:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;conio.h&gt;
//Funktions Prototypen zur Bekanntmachung !
int fakultaet (long);
int quersumme(long);

using namespace std;

int main () {
    long fak=0,quer=0,zahl,eingabe;

    cout &lt;&lt; &quot;Mit diesem Programm koennen sie die Fakultaet oder die Qersumme berechnen : \n\n&quot;&lt;&lt;endl;
    cout &lt;&lt; &quot;Bitte eine positive Zahl eingeben: &quot;&lt;&lt;endl;
    cin &gt;&gt; zahl;

    if (zahl &lt; 0) {
       cout &lt;&lt; &quot;Neg. Zahlen nicht unterstuetzt!&quot;&lt;&lt; endl;
    }

    else {
         if (zahl&gt;=100) {
            quer=quersumme(zahl);
            cout&lt;&lt;&quot;Quersumme: &quot;&lt;&lt;quer&lt;&lt;endl;
         }
         else {
              if(zahl&gt;=10) {
                           //also erstmal: ist egal ob zwei oder irgend eine andere zahl zwischen 2 und 32767 eingegeben wird es würde immer fak berehcnet werden..
                           //problem an der geschichte mit der fakultät ist die max größe von 32767 welche bereits bei 8! überschritten wird !
                           cout&lt;&lt; &quot;Wollen sie die Quersumme(Option:1) errechnet haben, oder die Fakultaet(Option:2) der eingegeben Zahl?&quot;&lt;&lt;endl;
                           cin&gt;&gt;eingabe;

                           if(eingabe==1) {
                                quer=quersumme(zahl);
                                cout&lt;&lt;&quot;Quersumme: &quot;&lt;&lt;quer&lt;&lt;endl;
                           }
                           else {
                                fak=fakultaet(zahl);
                                cout&lt;&lt;&quot;Fakultaet: &quot;&lt;&lt;fak&lt;&lt;endl;
                           }
                }
                else {
                     fak=fakultaet(zahl);
                     cout&lt;&lt;&quot;Fakultaet: &quot;&lt;&lt;fak&lt;&lt;endl;
                }
         }
         system(&quot;PAUSE&quot;);
         return 0;
    }
}

int fakultaet(long zahl) {   
    long i,fakult;
    fakult = zahl;

// i läuft von n bis zur 1
    if (zahl == 0) {
       fakult = 1;
    }
	else {
		for (i=zahl-1;i&gt;1; i--) {
		    fakult = fakult * i;
		}
    }
    return fakult;
}

int quersumme (long zahl) {
    long quer = 0;

    while (zahl &gt; 0) {
        quer+= zahl % 10;
        zahl /= 10;
    }

    return quer;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/968142</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968142</guid><dc:creator><![CDATA[nashia]]></dc:creator><pubDate>Mon, 16 Jan 2006 15:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to Problem mit int, long, double on Mon, 16 Jan 2006 15:18:26 GMT]]></title><description><![CDATA[<p>Wenn man mit großen Zahlen rechnen will, gibt man auch nicht int als Rückgabetyp an <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 />
ansonsten mußt du schon selber überprüfen, ob und wie weit die Genauigkeit deines Systems mitspielt - ein integer-Überlauf zeigt sich normalerweise dadurch, daß du plötzlich bei negativen Werten landest oder die Werte kleiner werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/968147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/968147</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 16 Jan 2006 15:18:26 GMT</pubDate></item></channel></rss>