<?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[Schleifen Problem]]></title><description><![CDATA[<p>Hi, hier hab ich ein gekürztes Programm und wollte fragen wieso es nicht so klappt wie ich es mir vorstelle. Hier erstmal der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;random&gt;

using namespace std;

long long a = 0;

random_device rd;

void ausgebenA()
{
    std::cout&lt;&lt;a&lt;&lt;&quot; &quot;&lt;&lt;std::endl;
}

long long hallo(const int geld)
{
    do
    {
        ausgebenA();
        a = rd();
    }while(a &gt; geld &amp;&amp; a &lt; 2);
    std::cout&lt;&lt;&quot;Person aktiv&quot;&lt;&lt;std::endl;
    std::cout&lt;&lt;&quot;Person faengt mit &quot;&lt;&lt;a&lt;&lt;&quot; Euro&quot;&lt;&lt;std::endl;
    ausgebenA();

    return a;
}

using namespace std;

int main()
{
    const int geld = 20;
    hallo(geld);

    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>Ich will eigentlich nur eine Zahl zwischen 2 und 20 bekommen um dann die Zahl weiter im Programm benutzen zu können, doch ich bekomme eine unendliche Schleife. Die Schleife sollte jedoch wenn eine Zufallszahl zwischen 2 - 20 kommt enden. Nach zahlreiche Versuchen hab ich es immer noch nicht geschafft den Fehler zu finden, vielleicht könnt ihr ihn finden.</p>
<p>mfg Zenter</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/305829/schleifen-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 08 Aug 2026 12:25:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/305829.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 09 Jul 2012 18:11:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 18:11:58 GMT]]></title><description><![CDATA[<p>Hi, hier hab ich ein gekürztes Programm und wollte fragen wieso es nicht so klappt wie ich es mir vorstelle. Hier erstmal der Code:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;random&gt;

using namespace std;

long long a = 0;

random_device rd;

void ausgebenA()
{
    std::cout&lt;&lt;a&lt;&lt;&quot; &quot;&lt;&lt;std::endl;
}

long long hallo(const int geld)
{
    do
    {
        ausgebenA();
        a = rd();
    }while(a &gt; geld &amp;&amp; a &lt; 2);
    std::cout&lt;&lt;&quot;Person aktiv&quot;&lt;&lt;std::endl;
    std::cout&lt;&lt;&quot;Person faengt mit &quot;&lt;&lt;a&lt;&lt;&quot; Euro&quot;&lt;&lt;std::endl;
    ausgebenA();

    return a;
}

using namespace std;

int main()
{
    const int geld = 20;
    hallo(geld);

    system(&quot;PAUSE&quot;);
    return 0;
}
</code></pre>
<p>Ich will eigentlich nur eine Zahl zwischen 2 und 20 bekommen um dann die Zahl weiter im Programm benutzen zu können, doch ich bekomme eine unendliche Schleife. Die Schleife sollte jedoch wenn eine Zufallszahl zwischen 2 - 20 kommt enden. Nach zahlreiche Versuchen hab ich es immer noch nicht geschafft den Fehler zu finden, vielleicht könnt ihr ihn finden.</p>
<p>mfg Zenter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231420</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231420</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 18:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 18:24:17 GMT]]></title><description><![CDATA[<p>pfui, globale variablen, die hälfte vom quellcode (dieses random_device) fehlt<br />
hässlicher code</p>
<p>ich glaube du bist dir nicht im klaren, was die sachen alle machen sollen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231425</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 09 Jul 2012 18:24:17 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 18:29:39 GMT]]></title><description><![CDATA[<p>Mit welchem a ist diese Bedingung wahr, wenn geld 20 ist?</p>
<pre><code class="language-cpp">a &gt; geld &amp;&amp; a &lt; 2
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231427</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 09 Jul 2012 18:29:39 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:06:08 GMT]]></title><description><![CDATA[<p>Hi, danke erstmal für die Rückmeldungen</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>(random_device)</p>
</blockquote>
<p>Wenn du genauer hinschaust ist es nach der globale Variable definiert</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>pfui, globale variablen</p>
</blockquote>
<p>Der Code wurde &quot;zusammenkopiert&quot; um zu zeigen welchen Problem ich hab und für die schnelle hab ich globale Variablen benutzt</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>hässlicher code</p>
</blockquote>
<p>Was ist daran so &quot;hässlich&quot; ? Also ich finde, dass man den Code ganz gut lesen und verstehen kann</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>ich glaube du bist dir nicht im klaren, was die sachen alle machen sollen</p>
</blockquote>
<p>Kann schon sein, ich arbeite zum ersten mal mit dem c+11 Header random. Falls ich was falsches mache, bitte sehr du darfst mich korrigieren.</p>
<p>manni66 schrieb:</p>
<blockquote>
<p>Mit welchem a ist diese Bedingung wahr, wenn geld 20 ist?</p>
<pre><code class="language-cpp">a &gt; geld &amp;&amp; a &lt; 2
</code></pre>
</blockquote>
<p>Hi manni66, die Bedingung soll wahr sein wenn die zufällige Zahl &quot;a&quot; kleiner 20 und größer 2 ist, wenn es nicht der Fall ist nochmal die Schleife durchlaufen</p>
<p>mfg Zenter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231441</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:06:08 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:20:01 GMT]]></title><description><![CDATA[<p>Zenter schrieb:</p>
<blockquote>
<p>manni66 schrieb:</p>
<blockquote>
<p>Mit welchem a ist diese Bedingung wahr, wenn geld 20 ist?</p>
<pre><code class="language-cpp">a &gt; geld &amp;&amp; a &lt; 2
</code></pre>
</blockquote>
<p>Hi manni66, die Bedingung soll wahr sein wenn die zufällige Zahl &quot;a&quot; kleiner 20 und größer 2 ist, wenn es nicht der Fall ist nochmal die Schleife durchlaufen</p>
</blockquote>
<p>Vergleiche nochmal deine beschriebene Bedingung mit deinem Code. Dann wirst du bemerken, dass dies nicht übereinstimmt.</p>
<p>Skym0sh0 schrieb:</p>
<blockquote>
<p>die hälfte vom quellcode (dieses random_device) fehlt</p>
</blockquote>
<p>&quot;Dieses&quot; random_device ist Teil der Standardbibliothek (seit C++11). Deswegen inkludiert er den &lt;random&gt;-Header.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231444</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231444</guid><dc:creator><![CDATA[ananas]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:20:01 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:35:26 GMT]]></title><description><![CDATA[<p>zenter schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while(a &gt; geld &amp;&amp; a &lt; 2);
</code></pre>
</blockquote>
<p>Sollte doch eigentlich so weit passen denn wenn a &gt; 20 oder a &lt; 2 ist soll die Schleife nochmal durchlaufen bis eben true rauskommt und die Schleife dann abbricht. Dann sollte ein willkürlicher Wert zwischen 20 - 2 im Konsolen Fenster erscheinen. Oder irre ich mich grad?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231451</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:35:26 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:41:31 GMT]]></title><description><![CDATA[<p>zenter schrieb:</p>
<blockquote>
<p>Oder irre ich mich grad?</p>
</blockquote>
<p>Ja.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231456</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:41:31 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:49:13 GMT]]></title><description><![CDATA[<p>Caligulaminus schrieb:</p>
<blockquote>
<p>Ja.</p>
</blockquote>
<p>Merci :), vielleicht ein wenig ausführlicher, wieso ich mich irre?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231462</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:49:13 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:53:32 GMT]]></title><description><![CDATA[<p>ananas schrieb:</p>
<blockquote>
<p>Vergleiche nochmal deine beschriebene Bedingung mit deinem Code. Dann wirst du bemerken, dass dies nicht übereinstimmt.</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2231465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231465</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:53:32 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:55:51 GMT]]></title><description><![CDATA[<p>ok, das mit dem random device wusste ich nicht. ich nehme alles zurück und behaupte das gegenteil</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231467</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231467</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:55:51 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:58:06 GMT]]></title><description><![CDATA[<pre><code>while(a &lt; geld &amp;&amp; a &gt; 2);
</code></pre>
<p>die größer/kleiner Zeichen ändern? Bringt nichts, bekomme auch nicht das Ergebnis was ich will. Die Lösung ist 100% einfach doch ich krieg sie grad nicht hin, mein Schädel droht zu explodieren. <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231469</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 19:59:23 GMT]]></title><description><![CDATA[<p>Bist du dir sicher, das du den Code hier richtig wiedergegeben hast? Eigentlich kann die Schleife nicht unendlich laufen sondern nur einmal, da a nie gleichzeitig größer 20 und kleiner 2 sein kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231470</guid><dc:creator><![CDATA[gast98]]></dc:creator><pubDate>Mon, 09 Jul 2012 19:59:23 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:11:19 GMT]]></title><description><![CDATA[<p>Zenter schrieb:</p>
<blockquote>
<pre><code>while(a &lt; geld &amp;&amp; a &gt; 2);
</code></pre>
<p>die größer/kleiner Zeichen ändern? Bringt nichts, bekomme auch nicht das Ergebnis was ich will.</p>
</blockquote>
<p>Damit hätten wir schon mal zwei der drei Operatoren betrachtet...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231477</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231477</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:11:19 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:14:57 GMT]]></title><description><![CDATA[<p>Dann soll es ein oder sein ||. Die Schleife läuft trotz all dem unendlich was ich nicht verstehe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231480</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:14:57 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:24:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">while(a &lt; 2 || a &gt; geld);
</code></pre>
<p>Das sollte die Lösung sein, und es schien mir unendlich weil es lange gedauert hat bis endlich eine Zahl von 2 - 20 gekommen ist, da der maximum Wert 4.294.967.295 ist. Das steig ich doch auf rand() um wenn es jedesmal 5 min braucht um eine kleine (in dem Fall) zufällige Zahl auszuwählen.</p>
<p>Danke für die Antworten</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231484</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:24:45 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:31:06 GMT]]></title><description><![CDATA[<p>Zenter schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while(a &lt; 2 || a &gt; geld);
</code></pre>
<p>Das sollte die Lösung sein, und es schien mir unendlich weil es lange gedauert hat bis endlich eine Zahl von 2 - 20 gekommen ist, da der maximum Wert 4.294.967.295 ist. Das steig ich doch auf rand() um wenn es jedesmal 5 min braucht um eine kleine (in dem Fall) zufällige Zahl auszuwählen.</p>
<p>Danke für die Antworten</p>
</blockquote>
<p>Und auf einem 64-Bit-System kannste die <code>4.294.967.295</code> (u.U.) gleich noch mal quadrieren.<br />
Kein Grund jedoch, auf rand() umzusteigen. Schau dir mal den Modulus-Operator an( <code>%</code> ).</p>
<p>~Edit: Spezifizierung.~</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231488</guid><dc:creator><![CDATA[Caligulaminus]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:31:06 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:32:18 GMT]]></title><description><![CDATA[<p>Ja, leck xD und so einfach ist es. Danke dir !! <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231489</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:32:18 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:36:04 GMT]]></title><description><![CDATA[<p>Zenter schrieb:</p>
<blockquote>
<p>Das steig ich doch auf rand() um wenn es jedesmal 5 min braucht um eine kleine (in dem Fall) zufällige Zahl auszuwählen.</p>
</blockquote>
<p>Du machst es dir aber auch besonders kompliziert, würdest du doch mit rand() auch nicht machen.</p>
<p>Früher, rand:</p>
<pre><code class="language-cpp">a = rand() % (geld-1) + 2
</code></pre>
<p>Heute, random_device:</p>
<pre><code class="language-cpp">a = rd() % (geld-1) + 2
</code></pre>
<p>Aber wenn du schon C++11 nimmst, nimm besser uniform_int_distribution:</p>
<pre><code class="language-cpp">std::uniform_int_distribution&lt;&gt; d(2, geld);
a = d(rd);
</code></pre>
<p>Außerdem: brauchst du wirklich random_device? Das sieht wie ein Spiel aus, da reicht ein normaler Pseudo-Zufallsgenerator (wie std::mt19937) vollkommen aus, random_device braucht man in der Regel nur bei kryptografischen oder ähnlichen Anwendungen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231490</guid><dc:creator><![CDATA[ipsec]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:36:04 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 20:48:55 GMT]]></title><description><![CDATA[<p>Jop, is mir erst jetzt im nachhinein klar geworden</p>
<p>mfg Zenter</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231494</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 09 Jul 2012 20:48:55 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 21:40:54 GMT]]></title><description><![CDATA[<p>ipsec schrieb:</p>
<blockquote>
<p>Außerdem: brauchst du wirklich random_device? Das sieht wie ein Spiel aus, da reicht ein normaler Pseudo-Zufallsgenerator (wie std::mt19937) vollkommen aus, random_device braucht man in der Regel nur bei kryptografischen oder ähnlichen Anwendungen.</p>
</blockquote>
<p><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="👍"
    /><br />
Hier geht eine einfache Mersenne-Twister Engine. Seeden nicht vergessen.</p>
<pre><code class="language-cpp">template&lt;typename t&gt;
typename std::enable_if&lt;std::is_integral&lt;t&gt;::value, t&gt;::type xrand(t a, t b)
{
        static std::mt19937 mtRandEngine(std::chrono::system_clock::now().time_since_epoch().count());

        std::uniform_int_distribution&lt;t&gt; distribution(a, b);

        return distribution(mtRandEngine);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2231498</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231498</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 21:40:54 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 21:14:01 GMT]]></title><description><![CDATA[<p>Wenn du das static bei der distribution wegmachst, dürfte das hinhauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231501</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231501</guid><dc:creator><![CDATA[Kellerautomat]]></dc:creator><pubDate>Mon, 09 Jul 2012 21:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Schleifen Problem on Mon, 09 Jul 2012 21:41:13 GMT]]></title><description><![CDATA[<p>Kellerautomat schrieb:</p>
<blockquote>
<p>Wenn du das static bei der distribution wegmachst, dürfte das hinhauen.</p>
</blockquote>
<p>Uupsi, vertippt <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="😃"
    /> thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2231507</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2231507</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Mon, 09 Jul 2012 21:41:13 GMT</pubDate></item></channel></rss>