<?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[aufhänger bei do&#x2F;while-schleife]]></title><description><![CDATA[<p>hi,<br />
ich hätte da mal ne frage:<br />
ich bin dabei ein programm zu schreiben welches aus einen 2d-feld, mithilfe der rand-funktion arrays ziehen soll. der gezogene array wird im startfeld von 1 auf 0 gesetz, und in einen anderen genausogroßen feld von 0 auf 1 gesetzt.<br />
jetzt soll er aber prüfen ob dieser array nicht schon einmal gezogen worden ist indem er nachschaut ob der bestimmte array im startfeld gleich 0 ist, wenn ja soll er 2 neue koordinaten mithilfe des rand-befehls auswürfeln und wider prüfen.<br />
dazu habe ich folgende schleife eingebaut:</p>
<p>do<br />
{int c = rand()%3; int d = rand()%2;<br />
}while (feld[c][d]=0);<br />
feldursprung[c][d]=0;<br />
feldweiteres[c][d]=1;</p>
<p>beim start hängt sich das program allerdings sofort auf.<br />
wiso? und danke schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/190688/aufhänger-bei-do-while-schleife</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 18:37:11 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/190688.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 25 Aug 2007 12:43:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 12:43:42 GMT]]></title><description><![CDATA[<p>hi,<br />
ich hätte da mal ne frage:<br />
ich bin dabei ein programm zu schreiben welches aus einen 2d-feld, mithilfe der rand-funktion arrays ziehen soll. der gezogene array wird im startfeld von 1 auf 0 gesetz, und in einen anderen genausogroßen feld von 0 auf 1 gesetzt.<br />
jetzt soll er aber prüfen ob dieser array nicht schon einmal gezogen worden ist indem er nachschaut ob der bestimmte array im startfeld gleich 0 ist, wenn ja soll er 2 neue koordinaten mithilfe des rand-befehls auswürfeln und wider prüfen.<br />
dazu habe ich folgende schleife eingebaut:</p>
<p>do<br />
{int c = rand()%3; int d = rand()%2;<br />
}while (feld[c][d]=0);<br />
feldursprung[c][d]=0;<br />
feldweiteres[c][d]=1;</p>
<p>beim start hängt sich das program allerdings sofort auf.<br />
wiso? und danke schonmal im voraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351793</guid><dc:creator><![CDATA[dom90]]></dc:creator><pubDate>Sat, 25 Aug 2007 12:43:42 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 15:11:42 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">while (feld[c][d]=0);
</code></pre>
<p>ist eine endlosschleife, denn es ist eine zuweisung und kein vergleich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351910</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351910</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Sat, 25 Aug 2007 15:11:42 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 16:15:09 GMT]]></title><description><![CDATA[<p>aha, und wie könnte man das problem umgehen?<br />
denn ich dachte immer dass die bedingung in die klammer nach dem while kommt, oder irr ich mich da?<br />
hier das programm:</p>
<p>#include &lt;cstdlib&gt;<br />
#include &lt;iostream&gt;<br />
#include &lt;ctime&gt;<br />
using namespace std;</p>
<p>int main(int argc, char *argv[])<br />
{<br />
srand( (unsigned)time(NULL) );<br />
int feld1[3][2]=<br />
{{1,1},<br />
{1,1},<br />
{1,1}};<br />
int feld2[3][2]=<br />
{{0,0},<br />
{0,0},<br />
{0,0}};</p>
<p>int x; int y;</p>
<p>for (x=0; x&lt;3; x=x+1)<br />
{for (y=0; y&lt;2; y=y+1)<br />
{printf (&quot;%d &quot;, feld1[x][y]);}<br />
printf (&quot;\n&quot;);}<br />
printf(&quot;\n&quot;);</p>
<p>for (x=0; x&lt;3; x=x+1)<br />
{for (y=0; y&lt;2; y=y+1)<br />
{printf (&quot;%d &quot;, feld2[x][y]);}<br />
printf (&quot;\n&quot;);}<br />
printf(&quot;\n&quot;);</p>
<p>int c; int d;</p>
<p>int a = (rand()%3);<br />
int b = (rand()%2);<br />
feld1[a][b]=0;<br />
feld2[a][b]=1;</p>
<p>do{int c = rand()%3;<br />
int d = rand()%2;} while (feld1[c][d]=0);<br />
feld1[c][d]=0;<br />
feld2[c][d]=1;</p>
<p>for (x=0; x&lt;3; x=x+1)<br />
{for (y=0; y&lt;2; y=y+1)<br />
{printf (&quot;%d &quot;, feld1[x][y]);}<br />
printf (&quot;\n&quot;);}<br />
printf(&quot;\n&quot;);</p>
<p>for (x=0; x&lt;3; x=x+1)<br />
{for (y=0; y&lt;2; y=y+1)<br />
{printf (&quot;%d &quot;, feld2[x][y]);}<br />
printf (&quot;\n&quot;);}<br />
printf(&quot;\n&quot;);</p>
<p>system(&quot;PAUSE&quot;);<br />
return EXIT_SUCCESS;<br />
}</p>
<p>ich habe es auch so versucht:</p>
<p>int w=1;</p>
<p>while(w=1)<br />
{int c = rand()%3;<br />
int d = rand()%2;<br />
if (feld1[c][d]=1)<br />
{w=0;}<br />
else<br />
{w=1;}}<br />
feld1[c][d]=0;<br />
feld2[c][d]=1;</p>
<p>kann das jemand verbessern oder mir eine andere lösung zeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351934</guid><dc:creator><![CDATA[dom90]]></dc:creator><pubDate>Sat, 25 Aug 2007 16:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 16:34:55 GMT]]></title><description><![CDATA[<p>shapeless schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while (feld[c][d]=0);
</code></pre>
<p>ist eine endlosschleife, denn es ist eine zuweisung und kein vergleich.</p>
</blockquote>
<p>Trotzdem keine Endlosschleife, da der Ausdruck nicht wahr ist.</p>
<p>@ dom90: Benutzt die [cpp]-Tags. So will niemand deinen Code lesen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351938</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351938</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Sat, 25 Aug 2007 16:34:55 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 17:17:15 GMT]]></title><description><![CDATA[<p>Tim schrieb:</p>
<blockquote>
<p>shapeless schrieb:</p>
<blockquote>
<pre><code class="language-cpp">while (feld[c][d]=0);
</code></pre>
<p>ist eine endlosschleife, denn es ist eine zuweisung und kein vergleich.</p>
</blockquote>
<p>Trotzdem keine Endlosschleife, da der Ausdruck nicht wahr ist.</p>
<p>@ dom90: Benutzt die [cpp]-Tags. So will niemand deinen Code lesen.</p>
</blockquote>
<p>Bin ich nun total fern jeder c++ Zeit die ich mal hatte, oder ist eine<br />
Zuweisung nicht definitiv wahr ?</p>
<p>Warum sollte denn der Ausdruck nicht wahr sein ?<br />
( wenn auch dieshier 2 endlosschleifen verursacht ):</p>
<p>[cpp]#include &lt;iostream&gt;</p>
<p>int main(){</p>
<p>int a=0;<br />
while(a=2){<br />
std::cout&lt;&lt;&quot;smth\n&quot;;<br />
break; // weil endlos<br />
}</p>
<p>int foo [10][10];<br />
while(foo[0][0]=1){<br />
std::cout&lt;&lt;&quot;smth else \n&quot;;<br />
}<br />
return true;</p>
<p>}[/cpp]</p>
<p>Oder war deine Aussage schon auf sein Beispiel bezogen ( welches ich noch<br />
nicht ganz gelesen hab ( eben wegen der fehlenden tags )</p>
<p>PS: meine cpp tags gehen irgendwie nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351948</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351948</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Sat, 25 Aug 2007 17:17:15 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 17:33:00 GMT]]></title><description><![CDATA[<p>shapeless schrieb:</p>
<blockquote>
<p>Bin ich nun total fern jeder c++ Zeit die ich mal hatte, oder ist eine<br />
Zuweisung nicht definitiv wahr ?</p>
</blockquote>
<p>Nein, eine zuweisung hat den selben warheitswert wie der zugewiesene wert.<br />
/edit: Hm. Oder wie die lvalue nach der zuweisung? Bei dem Array ist das ein unterschied.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351953</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351953</guid><dc:creator><![CDATA[ness]]></dc:creator><pubDate>Sat, 25 Aug 2007 17:33:00 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 17:32:38 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">while (a=1) // immer true
while (a=0) // immer false
</code></pre>
<p>Es zählt letzlich der Rückgabewert der Zuweisung und die ist im ersten Fall true (=&gt; 1) und im zweiten Fall false (=&gt; 0).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351954</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351954</guid><dc:creator><![CDATA[cvbfdnm]]></dc:creator><pubDate>Sat, 25 Aug 2007 17:32:38 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sat, 25 Aug 2007 17:35:52 GMT]]></title><description><![CDATA[<p>Oha stimmt. so wars.<br />
wie gesagt zu lange her.<br />
dann hätt ich wenigstens mal mit 0 und nicht mit 2 testen sollen.<br />
however danke für die Erinnerungshilfe! ( an euch 2 ( bzw 3 ) )</p>
<p>Dann zum OP:<br />
Es ist zwar keine Endlosschleife, aber dennoch ist der Vergleich in<br />
der Bedingung der Whileschleife falsch. ( semantisch nicht syntaktisch ).<br />
Ich gehe davon aus, dass du == und nicht = meinst, oder ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1351955</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1351955</guid><dc:creator><![CDATA[shapeless]]></dc:creator><pubDate>Sat, 25 Aug 2007 17:35:52 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sun, 26 Aug 2007 07:45:20 GMT]]></title><description><![CDATA[<p>vergleiche mit ==</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352153</guid><dc:creator><![CDATA[mnbvfrewsdfgjuik]]></dc:creator><pubDate>Sun, 26 Aug 2007 07:45:20 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sun, 26 Aug 2007 08:04:40 GMT]]></title><description><![CDATA[<p>Aja ist ja alles schön und gut,<br />
aber mein problem ist auch dass ich erst vor 3 tagen mit c angefangen habe.<br />
Ich habe jetzt in der bedingungung dass = mit dem == ausgetauscht, was allerdings nichts zu nützen scheint.</p>
<p>Kann es vielleicht sein, dass es daran liegt dass, wenn die schleife wider durchlaufen wird trotzdem keine neuen random -zahlen ausgewürfelt werden und er deswegen immer wider das selbe feld prüft?</p>
<p>Ich bin sehr dankbar wenn mir einer einfach klare anweisungen gibt, weil mein c-wissen noch sehr beschränkt ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352160</guid><dc:creator><![CDATA[dom90]]></dc:creator><pubDate>Sun, 26 Aug 2007 08:04:40 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sun, 26 Aug 2007 08:38:15 GMT]]></title><description><![CDATA[<p>poste mal deinen code schön formatiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352169</guid><dc:creator><![CDATA[mmvb]]></dc:creator><pubDate>Sun, 26 Aug 2007 08:38:15 GMT</pubDate></item><item><title><![CDATA[Reply to aufhänger bei do&#x2F;while-schleife on Sun, 26 Aug 2007 10:37:19 GMT]]></title><description><![CDATA[<p>Hier etz mal das ganze progrämmchen in schöner form:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;
#include &lt;ctime&gt;
using namespace std;

int main(int argc, char *argv[])
{
     srand( (unsigned)time(NULL) );
   int feld1[3][2]=
   {{1,1},
   {1,1},
   {1,1}};
   int feld2[3][2]=
    {{0,0},
   {0,0},
   {0,0}};
   int c; int d;
   int a = (rand()%3);
   int b = (rand()%2);
   feld1[a][b]=0;
   feld2[a][b]=1;

    do
   {int c = rand()%3; 
       int d = rand()%2;} while (feld1[c][d]==0);
       feld1[c][d]=0;
       feld2[c][d]=1;
system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
<p>Das Problem ist doch eher trivial, oder?( trotzdem zu hoch für mich)<br />
Kann mir irgendjemand den fehler zeigen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1352215</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1352215</guid><dc:creator><![CDATA[dom90]]></dc:creator><pubDate>Sun, 26 Aug 2007 10:37:19 GMT</pubDate></item></channel></rss>