<?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[rand() Anweisung immer = 41]]></title><description><![CDATA[<p>Also ich wollte gerne ein kleines Glückspiel erstellen, in dem es darum geht eine Zahl zwischen 1 und 100 zu erraten, doch meine Zufallszahl ist immer = 41.</p>
<p>Code:</p>
<pre><code class="language-csharp">int main()
{
      int zahl1;
      int randomzahl=rand()%101;
      cout&lt;&lt;&quot;Bitte eine Zahl zwischen 1 und 100 eingeben\n&quot;&lt;&lt;endl;
      cin&gt;&gt;zahl1;
      if (zahl1==randomzahl)
      {
      cout&lt;&lt;&quot;Richtig, die Zahl hiess: &quot;&lt;&lt;randomzahl&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }
      else
      {
      cout&lt;&lt;&quot;Falsch, die Zahl hiess: &quot;&lt;&lt;randomzahl&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }
      cout.flush();
      getch();
}
</code></pre>
<p>Woran liegt das? In wiefern das ich die Anweisung rand() falsch behandelt?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187100/rand-anweisung-immer-41</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 14:37:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187100.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 15 Jul 2007 20:54:52 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 20:54:52 GMT]]></title><description><![CDATA[<p>Also ich wollte gerne ein kleines Glückspiel erstellen, in dem es darum geht eine Zahl zwischen 1 und 100 zu erraten, doch meine Zufallszahl ist immer = 41.</p>
<p>Code:</p>
<pre><code class="language-csharp">int main()
{
      int zahl1;
      int randomzahl=rand()%101;
      cout&lt;&lt;&quot;Bitte eine Zahl zwischen 1 und 100 eingeben\n&quot;&lt;&lt;endl;
      cin&gt;&gt;zahl1;
      if (zahl1==randomzahl)
      {
      cout&lt;&lt;&quot;Richtig, die Zahl hiess: &quot;&lt;&lt;randomzahl&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }
      else
      {
      cout&lt;&lt;&quot;Falsch, die Zahl hiess: &quot;&lt;&lt;randomzahl&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }
      cout.flush();
      getch();
}
</code></pre>
<p>Woran liegt das? In wiefern das ich die Anweisung rand() falsch behandelt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326155</guid><dc:creator><![CDATA[Cr3at0r]]></dc:creator><pubDate>Sun, 15 Jul 2007 20:54:52 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 20:58:58 GMT]]></title><description><![CDATA[<p>Da fehlt ein srand( time( 0 ) ) am Anfang.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326156</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326156</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sun, 15 Jul 2007 20:58:58 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 20:59:39 GMT]]></title><description><![CDATA[<p>Vielen Dank, scheint jetzt zu funktionieren, vielen Dank. <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="🙂"
    /> <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/1326158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326158</guid><dc:creator><![CDATA[Cr3at0r]]></dc:creator><pubDate>Sun, 15 Jul 2007 20:59:39 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:15:14 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;ctime&gt;
#include &lt;cstdlib&gt;
#include &lt;limits&gt;

int main()
{
    std::cout &lt;&lt; &quot;Zahlenraten V1.0&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;Bitte geben Sie eine beliebige Zahl zwischen 1 und 100 ein! &quot; &lt;&lt; std::flush;
    unsigned short num = 0;
    while (!(std::cin &gt;&gt; num) || num &lt; 1 || num &gt; 100) { std::cin.clear(); std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n'); }
    std::srand(std::time(0));
    std::cout &lt;&lt; ((std::rand() % 100 + 1) == num ? &quot;Richtig!&quot; : &quot;Falsch!&quot;) &lt;&lt; &quot; Die Zahl hiess \&quot;&quot; &lt;&lt; num &lt;&lt; &quot;\&quot;.&quot; &lt;&lt; std::endl;
    std::cin.clear();   
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
    std::cin.get();
}
</code></pre>
<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="🙂"
    /><br />
So wird dir nix passieren wenn jemand a anstelle einer Zahl eingibt ... auch kann er wirklich nur Zahlen zwischen 1 und 100 eingeben <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/1326163</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326163</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:15:14 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:17:33 GMT]]></title><description><![CDATA[<p>(D)evil: Soweit bin ich jetzt noch nichts in C++ *G*</p>
<p>Aber das kommt schon noch. Ich hab folgende Frage/Probleme und zwar:<br />
Wie kann ich das rand() in eine gesonderte Funktion tun.</p>
<p>So siehts im Moment aus:</p>
<pre><code class="language-csharp">int main()
{     
      int eingabezahl(time(0));
      int nochmal=0;

      cout&lt;&lt;&quot;Bitte eine Zahl zwischen 1 und 100 eingeben:&quot;&lt;&lt;endl;
      cin&gt;&gt;eingabezahl;

      if (eingabezahl==Randomzahl())
      {
          cout&lt;&lt;&quot;Richtig, die Zahl hiess: &quot;&lt;&lt;Randomzahl()&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }
      else
      {
          cout&lt;&lt;&quot;Falsch, die Zahl hiess: &quot;&lt;&lt;Randomzahl&lt;&lt;&quot;\n&quot;&lt;&lt;endl;
      }

      getch();
} 

int Randomzahl()
{
      srand(time(0));
      return = rand()%100+1;    
}
</code></pre>
<p>Er gibt mir den Fehler: &quot;14 `Randomzahl' undeclared (first use this function) &quot; aus. Es ist die If-Abfrage, wo er zum ersten mal vor &quot;Randomzahl()&quot; steht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326165</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326165</guid><dc:creator><![CDATA[Cr3at0r]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:17:33 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:26:50 GMT]]></title><description><![CDATA[<p>der compiler geht den code vom anfang bis zum ende durch, zum zeitpunkt wo du die funktion aufrufst, gibt es diese noch nicht.</p>
<p>schieb die funktion also einfach über die main und alles sollte funktionieren <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/1326167</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326167</guid><dc:creator><![CDATA[:):):)]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:26:50 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:28:44 GMT]]></title><description><![CDATA[<p>wobei das nicht dein fehler ist, du hasst da, wo du die richtige random zahl ausgeben willst randomzahl hingeschrieben, erstens ohne &quot;()&quot; und zweitens wird dir das eine neue random zahl generieren.</p>
<p>musst die also irgendwo in der main zwischenspeichern.</p>
<p>der compilerfehler rührt aufjeden fall von den nicht vorhandenen &quot;()&quot; her.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326168</guid><dc:creator><![CDATA[:):):)]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:28:44 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:30:46 GMT]]></title><description><![CDATA[<p>da sind ausserdem noch weitere fehler. du brauchst den random generator nur einmal aufrufen, nicht jedesmal wieder und return weißt man nichts zu.<br />
also nicht: &quot;return = rand();&quot; sondern &quot;return rand();&quot;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326169</guid><dc:creator><![CDATA[:):):)]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:30:46 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:39:47 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int rand(unsigned short low = 1, unsigned short up = 100)
{
    return std::rand() % up + low;    
}
</code></pre>
<p>... und return ist keine &quot;Variable&quot; der du einen Wert zuweißt ... nicht wie in Delphi(das ist eine scheiß Sprache ... bringt viel Mist mitsich) ... einfach den Rückgabewert angeben ...<br />
std::srand soll man nur 1mal im Programm aufrufen ... d.h. ruf es einfach im main auf ...</p>
<p>@using namespace std-Fans: na jetzt würdet ihr ein Problem haben <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/1326172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326172</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:39:47 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 21:52:04 GMT]]></title><description><![CDATA[<p>Delphi hab ich als letztes gleernt, allerdings schul bedingt. Daher auch mein &quot;=&quot; <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 ich hab das Ding jetzt zum laufen gebracht. Hab den Wert in der Main in eine Variable abspeichern lassen, da mir beim Coden schon auffiel das ich dann 3 verschiedene Zahlen bekommen würde und das wollte ich ja nicht.</p>
<p>Warum sollte man std::srand nur einmal im Programm aufrufen?</p>
<p>Und was meinst du mit:<br />
&quot;@using namespace std-Fans: na jetzt würdet ihr ein Problem haben&quot; ???</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326180</guid><dc:creator><![CDATA[Cr3at0r]]></dc:creator><pubDate>Sun, 15 Jul 2007 21:52:04 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 22:06:23 GMT]]></title><description><![CDATA[<p>Hmm ... also ... ich erkläre mal meinen Code dann kommst du vllt selbst drauf ...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt; // std::cout, std::cin
#include &lt;ctime&gt; // std::time /* nicht time.h nutzen! */
#include &lt;cstdlib&gt; // std::srand, std::rand /* nicht stdlib.h nutzen! */
#include &lt;limits&gt; // std::numeric_limits

int main()
{
    std::cout &lt;&lt; &quot;Zahlenraten V1.0&quot; &lt;&lt; std::endl;
    std::cout &lt;&lt; &quot;Bitte geben Sie eine beliebige Zahl zwischen 1 und 100 ein! &quot; &lt;&lt; std::flush;
    unsigned short num = 0;
    while (!(std::cin &gt;&gt; num) || num &lt; 1 || num &gt; 100) // konnte die Eingabe in einen unsigned short gepackt werden? Ist die Zahl im Zahlenbereich 1 - 100?
    { // nein!
        std::cin.clear(); // alle status und failbits zurücksetzen!
        std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
    }
    std::srand(std::time(0)); // std::rand initialisieren. Als Wert die aktuelle Zeit ... =&gt; scheinbare Zufälle!
    std::cout &lt;&lt; ((std::rand() % 100 + 1) == num ? &quot;Richtig!&quot; : &quot;Falsch!&quot;) &lt;&lt; &quot; Die Zahl hiess \&quot;&quot; &lt;&lt; num &lt;&lt; &quot;\&quot;.&quot; &lt;&lt; std::endl; // if (std::rand() % 100 + 1 == num) std::cout &lt;&lt; &quot;Richtig!&quot;; else std::cout &lt;&lt; &quot;Falsch!&quot;; std::cout &lt;&lt; Die Zahl hiess \&quot;&quot; &lt;&lt; num &lt;&lt; &quot;\&quot;.&quot; &lt;&lt; std::endl; wäre die ausführliche Schreibweise. 
    /* ersetzt getch() */ ...
    std::cin.clear();  
    std::cin.ignore(std::numeric_limits&lt;std::streamsize&gt;::max(), '\n');
    std::cin.get();
}
</code></pre>
<p>so und nun zu dem von wegen usign namespace ...</p>
<pre><code class="language-cpp">int rand(unsigned short low = 1, unsigned short up = 100)
{
    return std::rand() % up + low;    
}

usign namespace std;

int main()
{
    srand(time(0));
    cout &lt;&lt; rand() &lt;&lt; endl; // welches rand soll er denn jetzt nehmen? das im global scope oder das aus std?
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1326186</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326186</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sun, 15 Jul 2007 22:06:23 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Sun, 15 Jul 2007 22:09:15 GMT]]></title><description><![CDATA[<p>(D)Evil dein Code ist unfair. Wie soll man eine Zahl erraten die es noch gar nicht gibt <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/1326188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326188</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sun, 15 Jul 2007 22:09:15 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Mon, 16 Jul 2007 00:17:25 GMT]]></title><description><![CDATA[<p>(D)Evil schrieb:</p>
<blockquote>
<p>so und nun zu dem von wegen usign namespace ...</p>
<pre><code class="language-cpp">int rand(unsigned short low = 1, unsigned short up = 100)
{
    return std::rand() % up + low;    
}

usign namespace std;

int main()
{
    srand(time(0));
    cout &lt;&lt; rand() &lt;&lt; endl; // welches rand soll er denn jetzt nehmen? das im global scope oder das aus std?
}
</code></pre>
</blockquote>
<p>Richtig. Da gibt es jetzt gar keine Lösung <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="🙄"
    /> Die Welt ist nämlich entweder schwarz oder weiß, niemals grau. Wer using-Direktiven verwendet darf niemals qualifizieren und wer der qualifiziert darf niemals usen. So spricht das Gesetzt und wenn das spricht, hat das Hirn Pause <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="😮"
    /></p>
<p>Ne, mal ehrlich, dir ist schon klar, dass du using-Direktiven, using-Deklarationen und explizite Qualifikation frei mischen kannst.</p>
<pre><code class="language-cpp">int rand(unsigned short low = 1, unsigned short up = 100)
{
    return std::rand() % up + low;    
}

using namespace std;

int main()
{
    srand(time(0));
    cout &lt;&lt; ::rand() &lt;&lt; endl;
}
</code></pre>
<p>Fertig und hat auch gar nicht weh getan.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326222</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326222</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 16 Jul 2007 00:17:25 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Mon, 16 Jul 2007 10:29:00 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int rand(unsigned short low = 1, unsigned short up = 100)
{
    return std::rand() % up + low;    
}
</code></pre>
<p>Darf ich mal fragen, ob dieser Code dazu gedacht ist, mir eine Zufallszahl zwischen low und up auszugeben? Weil er das nämlich nicht tut. Wenn ich das Ding aufrufe mit z.B.</p>
<pre><code class="language-cpp">int rnd = rand(80,100);
</code></pre>
<p>dann kommt raus (nur ein Beispiel): 368 % 100 + 80 = 68 + 80 = 148.<br />
Ich schei**e hier nur gerade klug, weil ich sowas selber gerade brauche und gerade nicht drauf kommen, wie man das denn wirklich machen sollte.</p>
<p>Gruss. mbu.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326421</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Mon, 16 Jul 2007 10:29:00 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Mon, 16 Jul 2007 10:35:34 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int rand(unsigned lower, unsigned upper) {
  int range = upper - lower;
  return ( static_cast&lt;float&gt;( rand() ) / RAND_MAX ) * range + lower;
}
</code></pre>
<p>so zum bleistift</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326426</guid><dc:creator><![CDATA[thordk]]></dc:creator><pubDate>Mon, 16 Jul 2007 10:35:34 GMT</pubDate></item><item><title><![CDATA[Reply to rand() Anweisung immer = 41 on Mon, 16 Jul 2007 10:44:44 GMT]]></title><description><![CDATA[<p>Super. Vielen Dank.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1326434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1326434</guid><dc:creator><![CDATA[mbu]]></dc:creator><pubDate>Mon, 16 Jul 2007 10:44:44 GMT</pubDate></item></channel></rss>