<?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[EinlesenSortierenAusgeben]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich wollte ein simples Programm schreiben das maximal 1000 Zahlen einliest, mit Bubble-S Algorithmus sortiert und danach wieder ausgibt.</p>
<p>Leider sortiert er nicht richtig und gibt zwischen den zahlen irgendwelche großen negativen zahlen aus. Ich kann mir das nicht erklären, vielleicht könnt ihr mal kurz drüberschauen hätte das gerne endlich gelöst.</p>
<p>Hab das Array verkleinert um fehler zu finden eigentlich steht 1000 drin.</p>
<p>Danke schon mal im vorrauss.</p>
<p>Code C++</p>
<pre><code class="language-cpp">using namespace std;
#include &lt;iostream&gt;

int main () {

size_t dim(5); int sort[dim];//size_t count(0);

//Einlesen
cout &lt;&lt; &quot;Bitte eine ganze Zahl eingeben max. 1000, ende mit STRG-D&quot; &lt;&lt; endl;
size_t i(0);
for (;i&lt;dim &amp;&amp; cin; ++i){
  cin &gt;&gt; sort[i];
  //++count;
}
if (!(i==dim || cin.eof())) {
  cerr &lt;&lt; &quot;##Fehler&quot; &lt;&lt; endl; return 1;
}

//Sortieren mit Bubble-S. Algorithmus
for (size_t i(0);i&lt;dim;++i){
  for (size_t j(i+1); i&lt;dim; ++i){
    if (sort[j] &lt; sort[i]){
      int temp=sort[i];
      sort[i]=sort[j];
      sort[j]=temp;
     }
  }
}

cout &lt;&lt; endl;

//Ausgeben der Sortierten Zahlen
for(size_t i(0);i&lt;dim;++i){
  cout &lt;&lt; sort[i] &lt;&lt; &quot;, &quot; &lt;&lt; endl;
}

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/286082/einlesensortierenausgeben</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 01:51:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286082.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 03 May 2011 11:51:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 11:51:36 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich wollte ein simples Programm schreiben das maximal 1000 Zahlen einliest, mit Bubble-S Algorithmus sortiert und danach wieder ausgibt.</p>
<p>Leider sortiert er nicht richtig und gibt zwischen den zahlen irgendwelche großen negativen zahlen aus. Ich kann mir das nicht erklären, vielleicht könnt ihr mal kurz drüberschauen hätte das gerne endlich gelöst.</p>
<p>Hab das Array verkleinert um fehler zu finden eigentlich steht 1000 drin.</p>
<p>Danke schon mal im vorrauss.</p>
<p>Code C++</p>
<pre><code class="language-cpp">using namespace std;
#include &lt;iostream&gt;

int main () {

size_t dim(5); int sort[dim];//size_t count(0);

//Einlesen
cout &lt;&lt; &quot;Bitte eine ganze Zahl eingeben max. 1000, ende mit STRG-D&quot; &lt;&lt; endl;
size_t i(0);
for (;i&lt;dim &amp;&amp; cin; ++i){
  cin &gt;&gt; sort[i];
  //++count;
}
if (!(i==dim || cin.eof())) {
  cerr &lt;&lt; &quot;##Fehler&quot; &lt;&lt; endl; return 1;
}

//Sortieren mit Bubble-S. Algorithmus
for (size_t i(0);i&lt;dim;++i){
  for (size_t j(i+1); i&lt;dim; ++i){
    if (sort[j] &lt; sort[i]){
      int temp=sort[i];
      sort[i]=sort[j];
      sort[j]=temp;
     }
  }
}

cout &lt;&lt; endl;

//Ausgeben der Sortierten Zahlen
for(size_t i(0);i&lt;dim;++i){
  cout &lt;&lt; sort[i] &lt;&lt; &quot;, &quot; &lt;&lt; endl;
}

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2057716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2057716</guid><dc:creator><![CDATA[Gast307]]></dc:creator><pubDate>Tue, 03 May 2011 11:51:36 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 12:31:02 GMT]]></title><description><![CDATA[<p>sorry kollege, das ist aus meiner total ekliger code. keine ordentlichen einrückungen, keine guten variablen namen, alles zu stark zusammen gequetscht...</p>
<p>solche konstrukto wie</p>
<pre><code class="language-cpp">for (;i&lt;dim &amp;&amp; cin; ++i)
</code></pre>
<p>würde ich auch sein lassen...</p>
<p>ausserdem was machst du in zeile 15?</p>
<p>zu deinem problem, das ist ganz klar. dein array ist komplett uninitialisiert, d.h. es stehen zufällige werte im speicher (bei mir öfters was bei -85 millionen)<br />
und die werte mischen sich unter deine eingaben. initialisier das gesamte array mal und versuchs dann nochmal (wobei die beste mgölichkeit wäre, nur soviele elemente zu betrachten wie eingegeben)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2057733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2057733</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 03 May 2011 12:31:02 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 15:12:29 GMT]]></title><description><![CDATA[<p>Gast307 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">//Sortieren mit Bubble-S. Algorithmus
    for (size_t i(0);i&lt;dim;++i){
        for (size_t j(i+1); i&lt;dim; ++i){
</code></pre>
</blockquote>
<p>korrekter wäre hier</p>
<pre><code class="language-cpp">//Sortieren mit Bubble-S. Algorithmus
    for (size_t i(0);i&lt;dim-1;++i){ // dim-1, da i+1 noch ein gültiges Element sein muss
        for (size_t j(i+1); j&lt;dim; ++j){ // Copy&amp;paste Fehler i&lt;-&gt;j
</code></pre>
<p>wobei der <a href="http://de.wikipedia.org/wiki/Bubblesort" rel="nofollow">Bubblesort</a> ein wenig anders geht, aber obiges sollte auch funktionieren.</p>
<p>ansonsten empfehle ich <a href="http://www.cplusplus.com/reference/stl/vector/" rel="nofollow">std::vector</a>.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2057889</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2057889</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 03 May 2011 15:12:29 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 16:08:40 GMT]]></title><description><![CDATA[<p>sorry das mein quellcode so erschreckt <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>
<p>Ich habe es auch mit werner-logoffs korrektur übernommen es klappt trotzdem nicht.<br />
Ich hab den code jetzt ein wenig verändert, doch es hilft immer noch nichts jetzt gibt er nur noch nullen aus!</p>
<p>Logischer wiesse müsste das, wens nach mir geht, funkt., hat jemand noch eine idee, würde gerne heute noch das thema abhaken können, danke.</p>
<pre><code class="language-cpp">using namespace std;
#include &lt;iostream&gt;

int main () {

size_t const dim(1000); int sort[dim] = {0}; size_t count(0);

//Einlesen
cout &lt;&lt; &quot;Bitte eine ganze Zahl eingeben max. 1000, ende mit STRG-D&quot; &lt;&lt; endl;

for (size_t i(0); i &lt; dim &amp;&amp; cin; ++i){
  cin &gt;&gt; sort[i];
  ++count;
}

//Sortieren mit Bubble-S. Algorithmus
//for (size_t i(0); i &lt; (dim-1); ++i){
  for (size_t j(0); j &lt; (dim-1); ++j){
    if (sort[j] &gt; sort[j+1]){
      int temp = sort[j];
      sort[j] = sort[j+1];
      sort[j+1] = temp;
     }
  }
}

cout &lt;&lt; endl;

//Ausgeben der Sortierten Zahlen
for (size_t i(0); i &lt; (count-1); ++i){
  cout &lt;&lt; sort[i] &lt;&lt; &quot;, &quot;;
}
cout &lt;&lt; endl;
return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2057934</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2057934</guid><dc:creator><![CDATA[Gast307]]></dc:creator><pubDate>Tue, 03 May 2011 16:08:40 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 16:32:00 GMT]]></title><description><![CDATA[<p>Gast307 schrieb:</p>
<blockquote>
<p>sorry das mein quellcode so erschreckt <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>
</blockquote>
<p>Er scheint auch dich zu erschrecken. So sehr, dass du in Zeile 25 nicht gemerkt hast, dass hier eine Klammer zu viel ist. Darum &quot;klappt es auch nicht&quot;.</p>
<p>Das mit den Nullen hat damit zu tun, dass du nicht den Bereich sortierst, der eingegeben wurde, sondern schlicht alle 1000 Einträge (die auf 0 sind).</p>
<p>Also: Zeile 18 dim-1 durch count-2 ersetzen.</p>
<p>Zu guter Letzt hast du einen Fehler im Algorithmus. Schau dir nochmal den Wikipediaartikel o.ä. an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2057949</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2057949</guid><dc:creator><![CDATA[esasel]]></dc:creator><pubDate>Tue, 03 May 2011 16:32:00 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 17:50:21 GMT]]></title><description><![CDATA[<p>Danke leute es hat doch noch geklappt!</p>
<p>Es lag an der for schleife die ich auskommentierte weil ich mir sicher war das man sie nicht braucht, aber wegen dem <strong>j &lt; count-2</strong> nahm ich sie wieder rein und seitdem klappt alles, warum auch immer ?? liegt wohl an der (un)logik von C++.</p>
<p>[cpp]<br />
using namespace std;<br />
#include &lt;iostream&gt;</p>
<p>int main () {</p>
<p>size_t const dim(1000); int sort[dim] = {0}; size_t count(0);</p>
<p>//Einlesen<br />
cout &lt;&lt; &quot;Bitte eine ganze Zahl eingeben max. 1000, ende mit STRG-D&quot; &lt;&lt; endl;</p>
<p>for (size_t i(0); i &lt; dim &amp;&amp; cin; ++i){<br />
cin &gt;&gt; sort[i];<br />
++count;<br />
}</p>
<p>//Sortieren mit Bubble-S. Algorithmus<br />
<strong>for (size_t i(0); i &lt; (dim-1); ++i){</strong><br />
for (size_t j(0); j &lt; (count-2); ++j){<br />
if (sort[j] &gt; sort[j+1]){<br />
int temp = sort[j];<br />
sort[j] = sort[j+1];<br />
sort[j+1] = temp;<br />
}<br />
}<br />
<strong>}</strong></p>
<p>cout &lt;&lt; endl;</p>
<p>//Ausgeben der Sortierten Zahlen<br />
for (size_t i(0); i &lt; (count-1); ++i){<br />
cout &lt;&lt; sort[i] &lt;&lt; &quot;, &quot;;<br />
}<br />
cout &lt;&lt; endl;<br />
return 0;<br />
}</p>
<p>[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058007</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058007</guid><dc:creator><![CDATA[Gast307]]></dc:creator><pubDate>Tue, 03 May 2011 17:50:21 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 17:53:40 GMT]]></title><description><![CDATA[<p>Gast307 schrieb:</p>
<blockquote>
<p>Danke leute es hat doch noch geklappt!</p>
<p>Es lag an der for schleife die ich auskommentierte weil ich mir sicher war das man sie nicht braucht, aber wegen dem <strong>j &lt; count-2</strong> nahm ich sie wieder rein und seitdem klappt alles, warum auch immer ?? liegt wohl an der (un)logik von C++.</p>
</blockquote>
<p>Die Schleife brauchst du ganz klar, die gehört mit zum BubbleSort-Algorithmus. Nur über die Start- und Endwerte der beiden Zählvariablen solltest du nochmal nachdenken.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058010</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058010</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 03 May 2011 17:53:40 GMT</pubDate></item><item><title><![CDATA[Reply to EinlesenSortierenAusgeben on Tue, 03 May 2011 19:38:59 GMT]]></title><description><![CDATA[<p>Wie Werner es gesagt hat, nutze <code>std::vector</code> ! Dann ist es so gross wie der User will und du musst dich nicht um die Speicherverwaltung kümmern.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2058077</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2058077</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Tue, 03 May 2011 19:38:59 GMT</pubDate></item></channel></rss>