<?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[Hilfe bei for-Schleife]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich brauche unbedingt eure Hilfe!</p>
<pre><code>for (int i = 0; i &lt; 4; i++)
  {
        (zahl1 - zahl2);
        i++;
  }
</code></pre>
<p>Diese Schleife soll 4 mal durchlaufen. Pro Durchlauf soll Zahl1 - Zahl2 gerechnet werden. Am Ende will ich Zahl1 ausgeben.<br />
Als Beispiel mit richtigen Zahlen:<br />
Zahl1=8 und Zahl2= 1<br />
Nach dem Durchlauf der Schleife soll Zahl1 dann den Wert 4 haben. Den (8-1) und das 4 mal wiederholt ergibt ja 4.<br />
Bei mir sind die Zahlen keine integer sonder float, da es sehr große Zahlen sind. Ich erhalte komischerweise als Ergebnis immer etwas wie 1.61747e+009.<br />
Warum erhalte ich keine &quot;normale&quot; Zahl wie z.B. 1023923 oder so?<br />
Hoffe ihr könnt mir helfen !</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/203533/hilfe-bei-for-schleife</link><generator>RSS for Node</generator><lastBuildDate>Wed, 07 Oct 2026 19:03:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/203533.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 23 Jan 2008 17:04:08 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:04:08 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich brauche unbedingt eure Hilfe!</p>
<pre><code>for (int i = 0; i &lt; 4; i++)
  {
        (zahl1 - zahl2);
        i++;
  }
</code></pre>
<p>Diese Schleife soll 4 mal durchlaufen. Pro Durchlauf soll Zahl1 - Zahl2 gerechnet werden. Am Ende will ich Zahl1 ausgeben.<br />
Als Beispiel mit richtigen Zahlen:<br />
Zahl1=8 und Zahl2= 1<br />
Nach dem Durchlauf der Schleife soll Zahl1 dann den Wert 4 haben. Den (8-1) und das 4 mal wiederholt ergibt ja 4.<br />
Bei mir sind die Zahlen keine integer sonder float, da es sehr große Zahlen sind. Ich erhalte komischerweise als Ergebnis immer etwas wie 1.61747e+009.<br />
Warum erhalte ich keine &quot;normale&quot; Zahl wie z.B. 1023923 oder so?<br />
Hoffe ihr könnt mir helfen !</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442171</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:04:08 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:06:19 GMT]]></title><description><![CDATA[<p>Warunm inkrementierst Du in der for Schleife nochmals i?? So wird pro Durchgang i um 2 erhöht. Beabsichtigt?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442174</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:06:19 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:14:39 GMT]]></title><description><![CDATA[<p>Habe das i++ in der for Schleife entfernt.</p>
<pre><code>for (int i = 0; i &lt; 4;)
  {
        (zahl1 - zahl2);
        i++;
  }
</code></pre>
<p>Trotzdem kommts nichts bei raus. Wenn die Zahl1 z.B. den Wert 1019 hat und die Zahl2 den Wert 1010 kommt nichts bei raus, bzw. nichts richtiges. Dann wird mir 1019 angezeigt.</p>
<p>habs jetzt so:</p>
<pre><code>for (int i = 0; i &lt; 4;)
    {

        ergebnis = (zahl1-zahl2);
        i++;
    }
</code></pre>
<p>Wenn nur 1 Durchlauf stattfindet klappt es, bei mehreren Durchläufen kommt wieder so ein &quot;komischer&quot; Wert raus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442180</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:14:39 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:12:50 GMT]]></title><description><![CDATA[<p>Zeig mal deinen gesamten Code.<br />
Sind zahl1 und zahl2 initialisiert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442181</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442181</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:13:38 GMT]]></title><description><![CDATA[<p>Abgesehen davon speicherst Du ja das Ergebnis der Subtraktion nirgends hin.<br />
Wie versuchst Du es auszugeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442182</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442182</guid><dc:creator><![CDATA[simon.gysi]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:13:38 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:21:00 GMT]]></title><description><![CDATA[<pre><code>for (int i = 0; i &lt; zahl1.length();)
    {

        ergebnis = (zahl1-zahl2);
        i++;
    }
</code></pre>
<p>Also. Man gibt Zahl1 in das Programm ein. Z.B. &quot;10&quot;. Das wird als String gespeichert. Die Stringlaenge ist 2. Also soll die Schleife 2 mal durchlaufen. Zahl1 und Zahl2 habe ich dann, weil sie eigentlich ein String waren, zu einem float konvertiert.</p>
<pre><code>string zahl1, zahl2;
float zahl1, zahl2i, ergebnis;
.....

zahl1i = atoi(zahl1.c_str());
zahl2i = atoi(zahl2.c_str());
......

    for (int i = 0; i &lt; zahl1.length();)
    {

        ergebnis = (zahl1i-zahl2i);
        i++;
    }
</code></pre>
<p>Habe mein Problem erkannt, wenn <strong>zahl1, zahl2i</strong> und <strong>ergebnis</strong> wieder zu <strong>integer</strong> gemacht werden gehts! trotzdem thx!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442185</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442185</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:21:00 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:22:33 GMT]]></title><description><![CDATA[<p>tester schrieb:</p>
<blockquote>
<p>Habe das i++ in der for Schleife entfernt.</p>
</blockquote>
<p>Bitte im Rumpf und nicht in der for-Anweisung entfernen das ist mehr als ungewöhnlich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

int main()
{
    float zahl1 = 8.0;
    float zahl2 = 1.0;
    for (int i = 0; i &lt; 4; ++i)
        zahl1 -= zahl2;
    std::cout &lt;&lt; zahl1;
}
</code></pre>
<p>Um es für dich genauer zu machen:<br />
for(&lt;1&gt;;&lt;2&gt;;&lt;3&gt;)</p>
<p>1. Initialisierung, wird einmalig zum Begin ausgeführt<br />
2. Abbruchbedingung, wird vor jedem Durchgang geprüft<br />
3. Ausdruck der am Ende jedes Schleifendurchganges ausgeführt wird</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442188</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:22:33 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:38:12 GMT]]></title><description><![CDATA[<p>Ok weils mein ist doch noch irgendwie fehlerhaft.<br />
denn</p>
<p>1019101710201021 - 101010101010<br />
und das in der Schleife, also in dem Fall läuft die Schleife 3 mal durch, kommt bei mir -1765712469 raus, was irgendwie überhaupt nicht passt.</p>
<p>werde es mal mit deiner for schleife probieren!</p>
<p>**/edit:<br />
Es kommt immer noch nichts brauchbares bei raus.<br />
so soll z.b. 102010201020 - 10101010 = -1.08922e+009 sein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /><br />
**</p>
<p>[red] Ok der Fehler liegt darin das meine Strings nicht richtig zu float konvertiert werden. <strong>zahl1i = atoi(zahl1.c_str());</strong> was ist daran z.b. falsch?<br />
zahl1 hat im string z.b. 10101010 und der schluesselwert ist 1.0101e+007 obwohl dieser auch 10101010 sein sollte![/red]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442193</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442193</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:38:12 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:41:16 GMT]]></title><description><![CDATA[<p>versuch die function atof anstat atoi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442199</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442199</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:41:16 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:51:49 GMT]]></title><description><![CDATA[<p>atof statt atoi bringt ebenfalls nichts:((</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442208</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:51:49 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 17:52:14 GMT]]></title><description><![CDATA[<p>Wobei der Sinn deiner Schleife nicht ersichtlich ist, es sei denn du hast bisher noch nicht den vollständigen Code gepostet.<br />
Warum man das gleiche Ergebnis mehrmals ausrechnen muss ist mir nicht ganz klar.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442210</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 23 Jan 2008 17:52:14 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 18:08:05 GMT]]></title><description><![CDATA[<p>ja der restliche code is schon geschrieben, er soll das ergebnis ja auch net gleich mehrsmal ausrechen. er soll wenn man z.b. wie gesagt zahl1 eingibt, das wäre 10. zahl 10 ist 2 zeichen lang. zahl2 ist z.b. 4.<br />
dann soll 2mal die 4 von 10 abgezogen werden also 10-4 ablaufen, dann i++ und nochmal 10-4. das wäre dann am ende 2. aber wie gesagt das problem liegt jeztt erstmal dabei einen string, der nur zahlen entählt, in einen integer umzuwandeln.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442223</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442223</guid><dc:creator><![CDATA[Tester0]]></dc:creator><pubDate>Wed, 23 Jan 2008 18:08:05 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Wed, 23 Jan 2008 18:10:02 GMT]]></title><description><![CDATA[<p>Das was in deiner for-schleife drinsteht verändert aber die Zahlen nicht. Auf diese Weise rechnest du immer das gleiche.<br />
Bezüglich umwandeln von string in Zahl schau mal in die FAQ.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442227</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 23 Jan 2008 18:10:02 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 11:07:57 GMT]]></title><description><![CDATA[<p>Ok hoffe mal, dass das dann klappen wird!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442649</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442649</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Thu, 24 Jan 2008 11:07:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 14:38:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">long long zahl1i=_atoi64(zahl1.c_str());
long long zahl2i=_atoi64(zahl2.c_str());
zahl1i-=zahl1.length()*zahl2i;
std::cout &lt;&lt; zahl1i;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1442837</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442837</guid><dc:creator><![CDATA[Nanyuki]]></dc:creator><pubDate>Thu, 24 Jan 2008 14:38:51 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 15:31:43 GMT]]></title><description><![CDATA[<p>Nanyuki vielen Dank für den Code, scheint zu klappen!! Vielen vielen dank!!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442870</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442870</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Thu, 24 Jan 2008 15:31:43 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 16:10:25 GMT]]></title><description><![CDATA[<p>Stehe nun leider vor noch einem Problem, mir scheint es so als ob Strings nur eine bestimmte Größe hätten. Wenn ich einen Spring mit 18 Zeichen, also z.B.<br />
888888888888888888 habe dann wird dieser auch richtig in einen int / long mit dem inhalt 888888888888888888 umgewandelt. wenn ich jetzt jedoch einen string mit dem inhalt 30303030303030303030 habe und diesen dann in einem long long haben will bekomme ich den wert -6590457844388800202 in &quot;meinen long long &quot; geliefert. Weiß jemand von euch, wodran das liegen könnte?</p>
<blockquote>
<p>Die physikalische Größe des Strings ist die Anzahl an gespeicherten Zeichen ohne eventuell vorhandenen Null-Terminator (Strings müssen ihre Daten nicht mit '\0' abschließen, außer zur Ausgabe durch c_str()). Die Größe kann über die Methoden size() und length() abgefragt (beide Methoden sind gleichwertig) und über resize(len,c) gesetzt werden - letzteres schneidet Zeichen am Ende ab bzw. füllt den String mit Kopien von c (Defaultwert ist '\0') auf, um die nötige Größe zu erreichen. Außerdem beeinflussen viele Stringmethoden, z.B. replace(), append() oder erase(), indirekt auch die Größe des Strings.</p>
<p>Die Kapazität des Strings ist die Zeichenzahl, die ohne Reallokation eingetragen werden kann. Sobald die Größe die Kapazität überschreitet, wird der gesamte Stringinhalt in einen neuen, größeren Block umkopiert und der alte Speicherblock freigegeben. Die Kapazität kann über die Methode capacity() abgefragt und über die Methode reserve(size) gesetzt werden. Im Gegensatz zu Vektoren, deren Kapazität NIE verkleinert wird, darf ein String auch in einen kleineren Speicherblock umziehen (allerdings nur auf Anforderung) - insbesondere bewirkt ein reserve() ohne Parameter eine Verkleinerung der Kapazität auf die aktuelle Größe.</p>
<p>Anmerkung: Es ist im Standard nicht garantiert, dass der String seine Kapazität verringern muss - er darf eine entsprechende Anforderung auch ignorieren. Umgekehrt ist es jedoch nicht erlaubt, dass der String aus eigenem Antrieb die Kapazität verkleinert. Der einzige Weg, garantiert die Kapazität eines Strings zu veringern, ist die Verwendung des sogenannten &quot;swap-Tricks&quot;:<br />
C/C++ Code:<br />
void shrink(string&amp; str)<br />
{<br />
string nstr(str.begin(),str.end());<br />
str.swap(nstr);<br />
}<br />
C/C++ Code:<br />
void shrink(string&amp; str)<br />
{<br />
string nstr(str.begin(),str.end());<br />
str.swap(nstr);<br />
}<br />
C/C++ Code:<br />
void shrink(string&amp; str)<br />
{<br />
string nstr(str.begin(),str.end());<br />
str.swap(nstr);<br />
}</p>
</blockquote>
<p>wie müsste das jetzt aussehen wenn ich z.b. einem string namens &quot;zahl&quot; die größt mögliche größe geben will?</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1442905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1442905</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Thu, 24 Jan 2008 16:10:25 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 19:07:50 GMT]]></title><description><![CDATA[<p>long long ist 64 Bit lang.<br />
Der maximale Wert ist:</p>
<p>18446744073709551616 // maximal Darstellbare Wert von long long<br />
888888888888888888<br />
30303030303030303030 // das ist zu gross</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443044</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443044</guid><dc:creator><![CDATA[Ramsis]]></dc:creator><pubDate>Thu, 24 Jan 2008 19:07:50 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Thu, 24 Jan 2008 20:46:17 GMT]]></title><description><![CDATA[<p>Und wie kann ich des alles noch &quot;größer&quot; machen?^^ Oder geht das nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443129</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443129</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Thu, 24 Jan 2008 20:46:17 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Fri, 25 Jan 2008 08:14:55 GMT]]></title><description><![CDATA[<p>tester schrieb:</p>
<blockquote>
<p>Und wie kann ich des alles noch &quot;größer&quot; machen?^^ Oder geht das nicht?</p>
</blockquote>
<p>Das geht nicht. Was du machen könntest eine eigene Zahlenklasse mit entsprechenden Operatoren zu schreiben, oder nach einer entsprechenden Bibliothek suchen.</p>
<p>cu André</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443244</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443244</guid><dc:creator><![CDATA[asc]]></dc:creator><pubDate>Fri, 25 Jan 2008 08:14:55 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei for-Schleife on Sat, 26 Jan 2008 12:30:15 GMT]]></title><description><![CDATA[<p>Mist. Hoffe mal das ich das dann noch irgendwie schaffen werde, trotzdem thx an alle!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1443947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1443947</guid><dc:creator><![CDATA[tester]]></dc:creator><pubDate>Sat, 26 Jan 2008 12:30:15 GMT</pubDate></item></channel></rss>