<?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[Zahlenraten]]></title><description><![CDATA[<p>Hilfe bei diesem Programm, dass in sieben Zügen eine Zahl von 1-100 erraten soll gesucht:(Was muss anstelle des Fragezeichens stehen?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main(){

	int Zahl=50;
	string Antwort;

	cout &lt;&lt;&quot;Zahlenratespiel, bitte denke dir eine Zahl aus(von 1-100)!&quot;&lt;&lt;endl;

	for(int i=0;i&lt;=7;++i)
	{
	     cout&lt;&lt;endl&lt;&lt;&quot;ist deine Zahl kleiner als &quot;&lt;&lt; Zahl &lt;&lt;&quot; ?   (Ja/Nein)&quot; &lt;&lt;endl;
		 cin &gt;&gt;Antwort;
		 cin.get();

		 if(Antwort == &quot;Ja&quot;)
		 {Zahl=(?);}

		 else if(Antwort == &quot;Nein&quot;)
		 {Zahl=(?);}

	}

	cin.get();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/300652/zahlenraten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 01 May 2026 23:11:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300652.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Mar 2012 13:56:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 13:56:46 GMT]]></title><description><![CDATA[<p>Hilfe bei diesem Programm, dass in sieben Zügen eine Zahl von 1-100 erraten soll gesucht:(Was muss anstelle des Fragezeichens stehen?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main(){

	int Zahl=50;
	string Antwort;

	cout &lt;&lt;&quot;Zahlenratespiel, bitte denke dir eine Zahl aus(von 1-100)!&quot;&lt;&lt;endl;

	for(int i=0;i&lt;=7;++i)
	{
	     cout&lt;&lt;endl&lt;&lt;&quot;ist deine Zahl kleiner als &quot;&lt;&lt; Zahl &lt;&lt;&quot; ?   (Ja/Nein)&quot; &lt;&lt;endl;
		 cin &gt;&gt;Antwort;
		 cin.get();

		 if(Antwort == &quot;Ja&quot;)
		 {Zahl=(?);}

		 else if(Antwort == &quot;Nein&quot;)
		 {Zahl=(?);}

	}

	cin.get();
	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189459</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189459</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 13:56:46 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:01:39 GMT]]></title><description><![CDATA[<p>Zumindest in Worten kannst du ja schonmal selber eine Antwort darauf finden.<br />
Die Schleife läuft übrigens 8 mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189462</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189462</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:01:39 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:06:26 GMT]]></title><description><![CDATA[<p>Das Problem in Worten ist, dass ich nur auf den Weg komme immer eine neue if Anweisung zu schreiben, dass macht dann 300*70 Zeilen.....</p>
<p>Okay, ich tausche das &lt;= gegen &lt; ... weiter weiss ich nicht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189465</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:06:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:13:22 GMT]]></title><description><![CDATA[<p>Was?<br />
Das bisherige Programm ist nicht von dir oder?<br />
Du musst dir doch nur merken, was du als letztes getippt hast und dann je nach Antwort den nächsten Tipp (die nächste Zahl) klug wählen.<br />
Was 'klug' ist, ist recht leicht, wenn du dir überlegst, wie du an Stelle des Rechners tippen würdest.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189469</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:13:22 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:45:19 GMT]]></title><description><![CDATA[<p>wenn ich &quot;klug&quot; wählen möchte, dann habe ich dass Problem, das ich für jede &quot;Ja&quot; ,&quot;Nein&quot; Möglichkeit 7 if verzweigungen einbauen muss, und wenn ich es mit einer Schleife versuche, dann muss ich wissen, was ich mit meiner Variablen machen muss um immer auf den Optimalen Mittelwert zu kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189480</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189480</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:45:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:51:49 GMT]]></title><description><![CDATA[<p>Nein, warum das denn.<br />
Ich denke mir ne Zahl und du/der Rechner rätst/rät 50. Dann sage ich dir, dass meine Zahl größer ist.<br />
Welche Zahl solltest du dann nehmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189485</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:55:05 GMT]]></title><description><![CDATA[<p>Ich würde aber gerne direkt eine Rechnung haben, die Zahl immer in die nächste gebrauchte Zahl(je nach ja oder nein) umwandelt. Gibt es diese nicht?<br />
(PS: die nächste Zahl ist natürlich 75, so viel ist mir schon klar)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189487</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:55:05 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 14:59:47 GMT]]></title><description><![CDATA[<p>Gringham schrieb:</p>
<blockquote>
<p>Ich würde aber gerne direkt eine Rechnung haben, die Zahl immer in die nächste gebrauchte Zahl(je nach ja oder nein) umwandelt. Gibt es diese nicht?<br />
(PS: die nächste Zahl ist natürlich 75, so viel ist mir schon klar)</p>
</blockquote>
<p>Und wie hast du die 75 ausgerechnet? Was hindert dich daran, diese Rechnung mit dem Computer zu machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189490</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189490</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 07 Mar 2012 14:59:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 15:01:40 GMT]]></title><description><![CDATA[<p>Mit was musst du denn die 50 multiplizieren, damit du auf 75 kommst?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189491</guid><dc:creator><![CDATA[TianTee]]></dc:creator><pubDate>Wed, 07 Mar 2012 15:01:40 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 15:02:45 GMT]]></title><description><![CDATA[<p>Wenn kleiner -&gt; Zahl = Zahl / 2<br />
wenn größer -&gt; Zahl = Zahl + Zahl / 2 // -- neee, das geht so nicht ....</p>
<p>aber ...</p>
<p>was machst Du, wenn ich mir 50 gemerkt habe und auf die Frage:<br />
'Ist Deine Zahl kleiner als 50?'<br />
die (dann richtige) Antwort 'Nein' gebe?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189492</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Wed, 07 Mar 2012 15:02:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 18:35:30 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>: Ich denke, diesen Fall werde ich nach der Lösung des Hauptproblems bedenken , ich denke ich werde es mit &quot;&lt;=&quot; und &quot;&gt;=&quot; rechnen</p>
<p>@alle anderen, auf die 75 kommt man , wenn man die ,Mitte auszählt, also<br />
Zahl+(Zahl/2)</p>
<p>aber alle Berechnungen für 75 verlieren sich bei der zweiten Runde, das ist mein Problem</p>
<p>wenn man für Ja = Zahl/2 +Zahl%2 nimmt geht das zwar wenn man sich 1 denkt, aber wenn einmal ein Nein dabei ist geht es schon nicht mehr, dies ist mein Problem</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189551</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189551</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 18:35:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 18:53:10 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
	short lobo, upbo, midd;
	char answ;

	std::cout &lt;&lt; &quot;Eingabe der Grenzen: &quot;;
	std::cin &gt;&gt; lobo &gt;&gt; upbo;

	for(;;)
	{
		midd=(lobo+upbo) &gt;&gt; 1;

		std::cout &lt;&lt; &quot;Ist &quot; &lt;&lt; midd &lt;&lt; &quot; die Zahl? (J/N) &quot;;
		std::cin &gt;&gt; answ;

		if(answ=='J') break;

		std::cout &lt;&lt; &quot;Liegt die Zahl unterhalb von &quot; &lt;&lt; midd &lt;&lt; &quot;? (J/N) &quot;;
		std::cin &gt;&gt; answ;

		if(answ=='J') upbo=midd;
		else lobo=midd;
	}

	return 0;

}
</code></pre>
<p>Würd ich jetzt mal so versuchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189555</guid><dc:creator><![CDATA[Thuruk]]></dc:creator><pubDate>Wed, 07 Mar 2012 18:53:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 19:31:38 GMT]]></title><description><![CDATA[<p>Hier noch ein Klassiker in einer Neuauflage (wenn irgendjemand mein Original noch finden kann, dann würde mich ein Link dahin interessieren):</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

template &lt;unsigned lower, unsigned upper&gt; struct zahlenraten
{
  void operator()()
  {
    const unsigned middle = (lower + upper) / 2;
    cout &lt;&lt; &quot;Liegt die Zahl oberhalb von &quot; &lt;&lt; middle &lt;&lt; &quot;(J/N)? &quot;;
    char yesorno;
    cin &gt;&gt; yesorno;
    if (yesorno == 'n' or yesorno == 'N')
      zahlenraten&lt;lower, middle&gt;()();
    else
      zahlenraten&lt;middle+1, upper&gt;()();
  }
};

template&lt;&gt; template &lt;unsigned number&gt; struct zahlenraten&lt;number, number&gt;
{
   void operator()()
  {
    cout &lt;&lt; &quot;Die Zahl lautet &quot; &lt;&lt; number &lt;&lt; &quot;.\n&quot;;
  } 
};

int main()
{
  const unsigned lower = 0, upper = 10000;
  cout &lt;&lt; &quot;Denke dir eine Zahl zwischen &quot; &lt;&lt; lower &lt;&lt; &quot; und &quot; &lt;&lt; upper &lt;&lt; &quot;.\n&quot;;
  zahlenraten&lt;lower, upper&gt;()();
}
</code></pre>
<p>Compilieren für 0 bis 10000 braucht bei mir gut 4 Minuten (gcc 4.6, die O3-Optimierung macht das richtig langsam), ca. 1 GB RAM und das Programm ist hinterher gut 1 MB groß.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189560</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189560</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 07 Mar 2012 19:31:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 19:31:07 GMT]]></title><description><![CDATA[<p>Ich bin mir relativ sicher, dass eure beiden Quelltexte Funktioneniern, aber leider verstehe ich sie nicht ganz, vermutlich, da ich bestimmet Themen noch nicht hatte sry...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189564</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189564</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Wed, 07 Mar 2012 19:31:07 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 19:35:24 GMT]]></title><description><![CDATA[<p>Ich suche den Mittelwert zwischen den Grenzen, frage ob er die Lösung ist oder die Zahl darunter liegt, je nachdem lege ich die obere oder untere Grenze auf den Mittelwert und wiederhole das ganze.</p>
<p>Zu beachten ist dass zahl &gt;&gt; 1 äquivalent einer Division durch 2 ist, hier werden alle bits nach rechts verschoben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189565</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189565</guid><dc:creator><![CDATA[Thuruk]]></dc:creator><pubDate>Wed, 07 Mar 2012 19:35:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 19:39:26 GMT]]></title><description><![CDATA[<p>Gringham schrieb:</p>
<blockquote>
<p>Ich bin mir relativ sicher, dass eure beiden Quelltexte Funktioneniern, aber leider verstehe ich sie nicht ganz, vermutlich, da ich bestimmet Themen noch nicht hatte sry...</p>
</blockquote>
<p>Meines ist auch eher eine Scherzlösung für Liebhaber. Aber was verstehst du denn an Thuruks Lösung nicht? Das sind doch nur eine Schleife, Vergleiche und Ausgaben. Einfacher wird dein Problem nicht zu lösen sein, es sei denn du rollst die Schleife von Hand ab (das macht mein Programm übrigens automatisch). Irritiert dich das <code>for (;;)</code> ? Das ist einfach eine for-Schleife mit leerem Kopf, die folglich endlos läuft<sup>*</sup>. finde ich selber nicht sehr elegant (das kann Thuruk auch schöner), aber mit dieser Info sollte klar sein, was passiert, oder?</p>
<p>Oh, und er teilt durch 2, indem er um 1 Bit nach rechts verschiebt, anstatt <code>/2</code> zu schreiben, weil das vor 35 Jahren mal schneller war und die Kids das heute immer noch cool finden <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>
<p><sup>*</sup>: Alter Programmiererscherz:</p>
<pre><code class="language-cpp">#define ever (;;)

// ...

for ever
{
  // ...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189566</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Wed, 07 Mar 2012 19:39:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 20:22:23 GMT]]></title><description><![CDATA[<p>Gringham schrieb:</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>: Ich denke, diesen Fall werde ich nach der Lösung des Hauptproblems bedenken , ich denke ich werde es mit &quot;&lt;=&quot; und &quot;&gt;=&quot; rechnen</p>
<p>@alle anderen, auf die 75 kommt man , wenn man die ,Mitte auszählt, also<br />
Zahl+(Zahl/2)</p>
<p>aber alle Berechnungen für 75 verlieren sich bei der zweiten Runde, das ist mein Problem</p>
<p>wenn man für Ja = Zahl/2 +Zahl%2 nimmt geht das zwar wenn man sich 1 denkt, aber wenn einmal ein Nein dabei ist geht es schon nicht mehr, dies ist mein Problem</p>
</blockquote>
<p>Es muss nichts zur Zahl addiert bzw. subtrahiert werden, sondern der Wert für Zahl verwendet werden, der in der Mitte zwischen den beiden Grenzen liegt, die du durch die Ja/Nein Fragen ermittelt hast.</p>
<pre><code>Min | Max | Mitte | Antwort
0   | 100 |  50   | größer
50  | 100 |  75   | kleiner
50  | 75  |  62   | kleiner
50  | 62  | ...
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2189584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189584</guid><dc:creator><![CDATA[zöhllöer]]></dc:creator><pubDate>Wed, 07 Mar 2012 20:22:23 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Wed, 07 Mar 2012 20:54:38 GMT]]></title><description><![CDATA[<p>Ich kenne das Beispiel aus C++ von A bis Z</p>
<p>Also : <a href="http://www.c-plusplus.net/forum/272350" rel="nofollow">http://www.c-plusplus.net/forum/272350</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189592</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189592</guid><dc:creator><![CDATA[Jürgen Wolf]]></dc:creator><pubDate>Wed, 07 Mar 2012 20:54:38 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Thu, 08 Mar 2012 11:09:55 GMT]]></title><description><![CDATA[<p>Das Problem ist wohl, dass er mit einer einzigen Variablen (Zahl) nicht auskommt, weil mal die Unter- mal die Obergrenze verändert werden muss.<br />
Ich habe das nicht sofort bemerkt und deshalb versucht, ganz streng wie in der Frage formuliert, ausschließlich die beiden Fragezeichen sinnvoll zu ersetzen - aber vermutlich gibt es da keine (vernünftige) Lösung für.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189701</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Thu, 08 Mar 2012 11:09:55 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Thu, 08 Mar 2012 11:18:53 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>Das Problem ist wohl, dass er mit einer einzigen Variablen (Zahl) nicht auskommt, weil mal die Unter- mal die Obergrenze verändert werden muss.<br />
Ich habe das nicht sofort bemerkt und deshalb versucht, ganz streng wie in der Frage formuliert, ausschließlich die beiden Fragezeichen sinnvoll zu ersetzen - aber vermutlich gibt es da keine (vernünftige) Lösung für.</p>
</blockquote>
<p>Man kann durchaus 2 short-Zahlen in einer int-Variablen speichern. <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/2189704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189704</guid><dc:creator><![CDATA[Thuruk]]></dc:creator><pubDate>Thu, 08 Mar 2012 11:18:53 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Thu, 08 Mar 2012 11:24:00 GMT]]></title><description><![CDATA[<p>Belli schrieb:</p>
<blockquote>
<p>Das Problem ist wohl, dass er mit einer einzigen Variablen (Zahl) nicht auskommt, weil mal die Unter- mal die Obergrenze verändert werden muss.</p>
</blockquote>
<p>Er hat ja auch zwei Variabeln: Zahl und i, sowie zwei Konstanten: 1 und 100.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189705</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189705</guid><dc:creator><![CDATA[Jockelx]]></dc:creator><pubDate>Thu, 08 Mar 2012 11:24:00 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenraten on Thu, 08 Mar 2012 15:04:17 GMT]]></title><description><![CDATA[<p>Ich habe nun Verstanden, worauf ihr hinauswolltet, danke,<br />
für all die große Hilfe<br />
(Ich schätze ich melde mich bald auch mal hier an)</p>
<p>Gruß Gringham</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2189815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2189815</guid><dc:creator><![CDATA[Gringham]]></dc:creator><pubDate>Thu, 08 Mar 2012 15:04:17 GMT</pubDate></item></channel></rss>