<?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[Fehler beim Generieren eines Arrays]]></title><description><![CDATA[<p>Hallo!</p>
<p>Bin ein C++ Neuling und habe gleich zu Beginn ein Problem, bei dem (glaube ich) nicht ich schuld bin, sondern der PC. Du willst mir das Gegenteil beweisen? Dann ließ weiter <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>Hier erstmal ein einfaches Programm:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
using namespace std;

char Zeichen[] = {'A', 'B', 'C'};
char Karte[4][4];

int main ()
{
srand(unsigned(time(0)));

for (int i = 4; i&gt;=0; i--)
{
    cout &lt;&lt; endl;
      for (int j = 4; j&gt;=0; j--)
      {
      Karte[i][j] = Zeichen[rand()%3];
      cout &lt;&lt; Karte[i][j];
      getch();
      }}

      cout &lt;&lt; endl &lt;&lt; endl;

      for (int i = 4; i&gt;=0; i--)
{
    cout &lt;&lt; endl;
      for (int j = 4; j&gt;=0; j--)
      {
      cout &lt;&lt; Karte[i][j];
      getch();
      }}

getch();
}
</code></pre>
<p>Ich generiere einfach eine zufällige 5x5 Karte, bei der jeder Punkt A, B oder C annehmen kann. Sollte zB so aussehen:</p>
<p><strong>1</strong> A B B C C<br />
<strong>2</strong> B B B C A<br />
<strong>3</strong> A B C C C<br />
<strong>4</strong> B A A B B<br />
<strong>5</strong> C B C A B<br />
<strong>0 1 2 3 4 5</strong></p>
<p>Soweit so gut. Das ist der erste Teil des Programms, der noch funzt.</p>
<p>Ich habe nun leider feststellen müssen, dass mir der PC einen Streich spielt. Ich speichere ja jeden Punkt im Array Karte[][]. Lasse ich mir dieses Array ausgeben (im zweiten Teil des Programms), erhalte ich nicht genau das, was gespeichert sein sollte, sondern es passiert Folgendes:<br />
Der PC tauscht ohne meine Erlaubnis den letzten Buchstaben jeder Zeile mit dem ersten Buchstaben der darauf folgenden Zeile aus. Wenn das Programm weiter geht erhalte ich also folgende Karte (fett gedruckt die veränderten Buchstaben):</p>
<p><strong>1</strong> A B B C <strong>B</strong><br />
<strong>2</strong> B B B C <strong>A</strong><br />
<strong>3</strong> A B C C <strong>B</strong><br />
<strong>4</strong> B A A B <strong>C</strong><br />
<strong>5</strong> C B C A B<br />
<strong>0 1 2 3 4 5</strong></p>
<p>Wieso ist das so? Liegt das an meinem PC? Ich benutze den Dev-C++ (Version 4.9.9.2) auf Windows XP Home.</p>
<p>Ich kann euch nur noch so viel sagen: Die Umspeicherung passiert bereits bei der Generierung der Karte. D.h. das Programm generiert die erste Zeile<br />
A B B C <strong>C</strong><br />
dann beginnt die neue:<br />
B &lt;--- und in diesem Moment schreibt er das obige fette C in ein B um. Das sieht man natürlich nicht wenn er die Karte erstmals aufschreibt, weil der ursprüngliche Buchstabe ja bereits dort steht. Gibt man das ganze aber nochmal aus, sieht man es.</p>
<p>Also: Wessen fehler und wie kann ich das beheben?</p>
<p>liebe Grüße,<br />
Philipp</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/273733/fehler-beim-generieren-eines-arrays</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 23:31:19 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/273733.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 12 Sep 2010 13:26:59 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler beim Generieren eines Arrays on Sun, 12 Sep 2010 13:26:59 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Bin ein C++ Neuling und habe gleich zu Beginn ein Problem, bei dem (glaube ich) nicht ich schuld bin, sondern der PC. Du willst mir das Gegenteil beweisen? Dann ließ weiter <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>Hier erstmal ein einfaches Programm:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;windows.h&gt;
#include &lt;conio.h&gt;
using namespace std;

char Zeichen[] = {'A', 'B', 'C'};
char Karte[4][4];

int main ()
{
srand(unsigned(time(0)));

for (int i = 4; i&gt;=0; i--)
{
    cout &lt;&lt; endl;
      for (int j = 4; j&gt;=0; j--)
      {
      Karte[i][j] = Zeichen[rand()%3];
      cout &lt;&lt; Karte[i][j];
      getch();
      }}

      cout &lt;&lt; endl &lt;&lt; endl;

      for (int i = 4; i&gt;=0; i--)
{
    cout &lt;&lt; endl;
      for (int j = 4; j&gt;=0; j--)
      {
      cout &lt;&lt; Karte[i][j];
      getch();
      }}

getch();
}
</code></pre>
<p>Ich generiere einfach eine zufällige 5x5 Karte, bei der jeder Punkt A, B oder C annehmen kann. Sollte zB so aussehen:</p>
<p><strong>1</strong> A B B C C<br />
<strong>2</strong> B B B C A<br />
<strong>3</strong> A B C C C<br />
<strong>4</strong> B A A B B<br />
<strong>5</strong> C B C A B<br />
<strong>0 1 2 3 4 5</strong></p>
<p>Soweit so gut. Das ist der erste Teil des Programms, der noch funzt.</p>
<p>Ich habe nun leider feststellen müssen, dass mir der PC einen Streich spielt. Ich speichere ja jeden Punkt im Array Karte[][]. Lasse ich mir dieses Array ausgeben (im zweiten Teil des Programms), erhalte ich nicht genau das, was gespeichert sein sollte, sondern es passiert Folgendes:<br />
Der PC tauscht ohne meine Erlaubnis den letzten Buchstaben jeder Zeile mit dem ersten Buchstaben der darauf folgenden Zeile aus. Wenn das Programm weiter geht erhalte ich also folgende Karte (fett gedruckt die veränderten Buchstaben):</p>
<p><strong>1</strong> A B B C <strong>B</strong><br />
<strong>2</strong> B B B C <strong>A</strong><br />
<strong>3</strong> A B C C <strong>B</strong><br />
<strong>4</strong> B A A B <strong>C</strong><br />
<strong>5</strong> C B C A B<br />
<strong>0 1 2 3 4 5</strong></p>
<p>Wieso ist das so? Liegt das an meinem PC? Ich benutze den Dev-C++ (Version 4.9.9.2) auf Windows XP Home.</p>
<p>Ich kann euch nur noch so viel sagen: Die Umspeicherung passiert bereits bei der Generierung der Karte. D.h. das Programm generiert die erste Zeile<br />
A B B C <strong>C</strong><br />
dann beginnt die neue:<br />
B &lt;--- und in diesem Moment schreibt er das obige fette C in ein B um. Das sieht man natürlich nicht wenn er die Karte erstmals aufschreibt, weil der ursprüngliche Buchstabe ja bereits dort steht. Gibt man das ganze aber nochmal aus, sieht man es.</p>
<p>Also: Wessen fehler und wie kann ich das beheben?</p>
<p>liebe Grüße,<br />
Philipp</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951566</guid><dc:creator><![CDATA[SirGawain]]></dc:creator><pubDate>Sun, 12 Sep 2010 13:26:59 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Generieren eines Arrays on Sun, 12 Sep 2010 13:31:31 GMT]]></title><description><![CDATA[<p>1. <a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-237002.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-237002.html</a><br />
Das hat aber nichts direkt mit deinem Problem zu tun.<br />
2. Dein Problem ist, dass du ein 2D Array von 4x4 Element reservierst, es aber wie ein 5x5 Array behandelst. Also entweder char <code>Karte[5][5]</code> oder in der <code>for</code> -Schleife bei 3 starten.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951567</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951567</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Sun, 12 Sep 2010 13:31:31 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler beim Generieren eines Arrays on Sun, 12 Sep 2010 13:57:37 GMT]]></title><description><![CDATA[<p>Vielen Dank!</p>
<p>Ich dachte beim Deklarieren wird die größte Stelle angegeben (also von 0 bis 4), nicht die Anzahl an Stellen. Aber wie sagen die Lehrer immer: &quot;Ich dachte, ich dachte ...&quot;</p>
<p>Und danke für den Link. Daweil reicht mir Dev-C+ wahrscheinlich noch.</p>
<p>liebe Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1951580</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1951580</guid><dc:creator><![CDATA[SirGawainAlsGast]]></dc:creator><pubDate>Sun, 12 Sep 2010 13:57:37 GMT</pubDate></item></channel></rss>