<?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[Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwei Fehler:<br />
1. Wenn jemand nicht 1, 2 oder 3 eingibt dann soll der cin für die Werteeingabe erneut erscheinen.<br />
2. Die Berechnung funktioniert nicht. Es wird immer nur mit dem Preis von 2.50 EUR (Hersteller=3) gerechnet.</p>
<p>Könnt ihr mir bitte einen Tipp geben wie ich diese beiden Fehler aus meinem Programm herausbekomme?</p>
<p>Danke &amp; Gruß Andreas</p>
<p>if (Hersteller !=1 &amp;&amp; Hersteller !=2 &amp;&amp; Hersteller !=3) //Logische und Verknüpfung für die Eingabevalidierung<br />
{<br />
cout &lt;&lt; &quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1,2 oder 3&quot; &lt;&lt;endl;</p>
<p>}<br />
else<br />
{</p>
<p>if (Hersteller =1)<br />
{<br />
Preis= 1.50;<br />
}</p>
<p>if (Hersteller =2)<br />
{<br />
Preis= 1.80;<br />
}</p>
<p>if (Hersteller =3)<br />
{<br />
Preis= 2.50;<br />
}</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/248844/falsche-berechnung-und-neustart-des-programms-bei-eingabe-eines-ungültiges-wertes</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 18:16:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/248844.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 30 Aug 2009 09:29:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 09:29:58 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe zwei Fehler:<br />
1. Wenn jemand nicht 1, 2 oder 3 eingibt dann soll der cin für die Werteeingabe erneut erscheinen.<br />
2. Die Berechnung funktioniert nicht. Es wird immer nur mit dem Preis von 2.50 EUR (Hersteller=3) gerechnet.</p>
<p>Könnt ihr mir bitte einen Tipp geben wie ich diese beiden Fehler aus meinem Programm herausbekomme?</p>
<p>Danke &amp; Gruß Andreas</p>
<p>if (Hersteller !=1 &amp;&amp; Hersteller !=2 &amp;&amp; Hersteller !=3) //Logische und Verknüpfung für die Eingabevalidierung<br />
{<br />
cout &lt;&lt; &quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1,2 oder 3&quot; &lt;&lt;endl;</p>
<p>}<br />
else<br />
{</p>
<p>if (Hersteller =1)<br />
{<br />
Preis= 1.50;<br />
}</p>
<p>if (Hersteller =2)<br />
{<br />
Preis= 1.80;<br />
}</p>
<p>if (Hersteller =3)<br />
{<br />
Preis= 2.50;<br />
}</p>
<p>}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769141</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769141</guid><dc:creator><![CDATA[mitchandi1]]></dc:creator><pubDate>Sun, 30 Aug 2009 09:29:58 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 09:43:32 GMT]]></title><description><![CDATA[<p>1. Wo ist denn das Problem dabei? Du zeigst ja leider nicht mal, wo du cin verwendest. Vermutlich hast du das Problem, dass du vor einer erneuten Eingabe erstmal den Eingabepuffer leeren musst (siehe FAQ).</p>
<p>2. Du verwendest hier den Zuweisungsoperator '=' und nicht den Vergleichsoperator '=='. Du weist in deiner if-Anweisung also der Variable Hersteller den Wert 1 (oder 2, oder 3) zu. Es wird also jeder Rumpf deiner if-Anweisungen ausgeführt. Am Schluss ist Preis immer 2.5, weil diese Zuweisung zuletzt passiert ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769148</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sun, 30 Aug 2009 09:43:32 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 10:50:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>danke für deine rasche Antwort. Fehler 1 ist nun behoben. Das Programm rechnet jetzt richtig.<br />
Bei Fehler2 weiß ich nicht wie ich das lösen soll. Wenn jemand einen Hersteller eingibt, welcher nicht 1,2 oder 3 ist dann soll erneut die Abfrage kommen geben Sie den Hersteller ein, solange bis 1,2 oder 3 eingegeben wird. Erst dann soll die Programmausführung fortsetzen.</p>
<p>cout &lt;&lt; &quot;Bitte geben Sie den Hersteller ein:&quot; &lt;&lt; endl;<br />
cin &gt;&gt; Hersteller;</p>
<p>if (Hersteller !=1 &amp;&amp; Hersteller !=2 &amp;&amp; Hersteller !=3) //Logische und Verknüpfung für die Eingabevalidierung<br />
{<br />
cout &lt;&lt; &quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1,2 oder 3&quot; &lt;&lt;endl;</p>
<p>}</p>
<p>else<br />
{</p>
<p>if (Hersteller =1)<br />
{<br />
Preis= 1.50;<br />
cout &lt;&lt; Gesamtpreis;<br />
}</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769172</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769172</guid><dc:creator><![CDATA[mitchandi]]></dc:creator><pubDate>Sun, 30 Aug 2009 10:50:59 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:01:03 GMT]]></title><description><![CDATA[<p>Zeig doch mal den Origianl Code, wo man auch die Typen sieht.</p>
<p>Und wenn du schon dabei bist, kannst du den Code gleich in die cpp-Tags packen. (unterhalb der Smileys hat es einen Button C/C++)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769174</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:01:03 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:04:47 GMT]]></title><description><![CDATA[<p>Du vergleichst die Variable &quot;Hersteller&quot; mit einer Ganzzahl, weist ihr aber einen Gleitkommazahlwert zu, wenn Hersteller = 1 ist. Mach Hersteller also float und frage so ab:</p>
<pre><code class="language-cpp">switch( Hersteller )
{
	case 1.0:
		Hersteller = 1.5f;
		break;
	default:
		std::cout&lt;&lt;&quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1.0, 2.0 oder 3.0&quot;&lt;&lt;endl;
		break;
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1769179</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769179</guid><dc:creator><![CDATA[Kóyaánasqatsi]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:04:47 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:08:43 GMT]]></title><description><![CDATA[<p>mitchandi schrieb:</p>
<blockquote>
<p>Bei Fehler2 weiß ich nicht wie ich das lösen soll. Wenn jemand einen Hersteller eingibt, welcher nicht 1,2 oder 3 ist dann soll erneut die Abfrage kommen geben Sie den Hersteller ein, solange bis 1,2 oder 3 eingegeben wird. Erst dann soll die Programmausführung fortsetzen.</p>
</blockquote>
<pre><code class="language-cpp">cout &lt;&lt; &quot;Bitte geben Sie den Hersteller ein:&quot; &lt;&lt; endl;
do {cin &gt;&gt;  Hersteller;} while (Hersteller !=1 &amp;&amp; Hersteller !=2 &amp;&amp; Hersteller !=3);
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1769184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769184</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:08:43 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:12:26 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Du vergleichst die Variable &quot;Hersteller&quot; mit einer Ganzzahl, weist ihr aber einen Gleitkommazahlwert zu, wenn Hersteller = 1 ist. Mach Hersteller also float und frage so ab:</p>
<pre><code class="language-cpp">switch( Hersteller )
{
	case 1.0:
		Hersteller = 1.5f;
		break;
	default:
		std::cout&lt;&lt;&quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1.0, 2.0 oder 3.0&quot;&lt;&lt;endl;
		break;
};
</code></pre>
</blockquote>
<p>Wo bitte weist er Hersteller einen Gleitkommawert zu? Und seit wann kann man Gleitkommazahlen in switch verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769188</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769188</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:38:54 GMT]]></title><description><![CDATA[<p>Kóyaánasqatsi schrieb:</p>
<blockquote>
<p>Du vergleichst die Variable &quot;Hersteller&quot; mit einer Ganzzahl, weist ihr aber einen Gleitkommazahlwert zu, wenn Hersteller = 1 ist. Mach Hersteller also float und frage so ab:</p>
<pre><code class="language-cpp">switch( Hersteller )
{
	case 1.0:
		Hersteller = 1.5f;
		break;
	default:
		std::cout&lt;&lt;&quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1.0, 2.0 oder 3.0&quot;&lt;&lt;endl;
		break;
};
</code></pre>
</blockquote>
<p>Gerade erst aufgestanden? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1769211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769211</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:38:54 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 11:53:59 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>anbei mein gesamtes Programm. Problem ist momentan noch dass das Programm 2 Dezimalstellen genau den Gesamtpreis und das Wechselgeld ausgeben soll und wenn ein Wert ungleich 1,2,3 eingegeben wird dass das Programm erneut nach dem Herstellerwert frägt:</p>
<pre><code class="language-cpp">#include &lt;cstdlib&gt;
#include &lt;iostream&gt;

using namespace std;

//Erstellen der Klasse Eis
class eis //Definition der Klasse 

{

//Definition der Attribute (Eigenschaften)  
private: 
     int Menge, Hersteller; //Zuweisen des Datentyps int(Ganzzahl) zu den Variablen Menge und Hersteller
     float Preis, Gesamtpreis, Wechselgeld;  //Zuweisen des Datentyps float (geeignet für Währung und Dezimalstellen) für Preis, Gesamtpreis und Wechselgeld

public:
     void eis_kaufen(); //Definition der Methode (void kein Rückgabedatentyp)
      };

void eis::eis_kaufen() //Füllen der Methode eis_kaufen der Klasse eis mit Rechenoperationen

{

cout &lt;&lt; &quot;Welches Eis wollen Sie kaufen? &quot; &lt;&lt; endl;
cout &lt;&lt; &quot;1)Capri Preis=1,50 EUR&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;2)Nogger Preis=1,80 EUR&quot; &lt;&lt; endl;
cout &lt;&lt; &quot;3)Cornetto Preis=2,50 EUR&quot; &lt;&lt; endl;   
cin &gt;&gt;  Hersteller;

if (Hersteller !=1 &amp;&amp; Hersteller !=2 &amp;&amp; Hersteller !=3) //Logische und Verknüpfung für die Eingabevalidierung
{ 
                cout &lt;&lt; &quot;Sie haben einen ungueltigen Wert eingegeben - erlaubt ist die Auswahl 1,2 oder 3&quot; &lt;&lt;endl;

}
 else
{

if (Hersteller ==1)
{           
              Preis= 1.50;
              }

if (Hersteller ==2)
{         
              Preis= 1.80;
              }

    if (Hersteller ==3)
{      
              Preis= 2.50;
              }      

}

cout &lt;&lt; &quot;Wieviel Eis wollen Sie von dieser Sorte kaufen?&quot; &lt;&lt; endl;   
cin &gt;&gt; Menge;
    // Menge = 1;
     //Hersteller=2;
     Gesamtpreis = Menge*Preis;
     cout &lt;&lt; &quot;Der Gesamtpreis ist:&quot; &lt;&lt; endl;
     cout  &lt;&lt; Gesamtpreis; 
     cout&lt;&lt;&quot; EUR&quot; &lt;&lt; endl;

     Wechselgeld = 15 - Gesamtpreis;

     cout &lt;&lt; &quot;Ihr Wechselgeld ist:&quot; &lt;&lt;endl;

     cout &lt;&lt; Wechselgeld;
        cout&lt;&lt;&quot; EUR&quot; &lt;&lt; endl;
}

int main(void) //Notwendig für C++, Hauptprogramm zum Starten
{

//cin &gt;&gt;  

//Erstellung eines Objektes der Klasse Eis (Instanz der Klasse Eis)

  eis Kaufen; //Zuordnung des Objektes der Klasse Eis
  Kaufen.eis_kaufen(); //Ausführen der Methode  eis_kaufen mit dem Objekt Kaufen

    system(&quot;PAUSE&quot;);
    return EXIT_SUCCESS;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1769213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769213</guid><dc:creator><![CDATA[mitchandi]]></dc:creator><pubDate>Sun, 30 Aug 2009 11:53:59 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 12:47:42 GMT]]></title><description><![CDATA[<p>mitchandi schrieb:</p>
<blockquote>
<p>Problem ist momentan noch dass das Programm 2 Dezimalstellen genau den Gesamtpreis und das Wechselgeld ausgeben soll</p>
</blockquote>
<p>Sieh dir mal setprecision an...</p>
<p>mitchandi schrieb:</p>
<blockquote>
<p>und wenn ein Wert ungleich 1,2,3 eingegeben wird dass das Programm erneut nach dem Herstellerwert frägt:</p>
</blockquote>
<p>Hast du diesen Thread nicht gelesen?? Du hast dafür schon eine Lösung präsentiert bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769251</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769251</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sun, 30 Aug 2009 12:47:42 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 15:05:23 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>bei mir funktioniert setprecision leider nicht:</p>
<p>cout &lt;&lt; setprecision(2) &lt;&lt; Gesamtpreis;<br />
cout&lt;&lt;&quot; EUR&quot; &lt;&lt; endl;</p>
<p>Als Zahl wird trotzdem nur 1 Nachkommastelle ausgegeben!<br />
Leider hat die Switch-Case Anweisung im Thread zuvor auch nicht funktioniert.</p>
<p>Könnt ihr bitte hierfür noch Tipps geben?</p>
<p>Gruß Andreas</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769316</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769316</guid><dc:creator><![CDATA[mitchandi1]]></dc:creator><pubDate>Sun, 30 Aug 2009 15:05:23 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 15:11:32 GMT]]></title><description><![CDATA[<p>mitchandi1 schrieb:</p>
<blockquote>
<p>Hallo,</p>
<p>bei mir funktioniert setprecision leider nicht:</p>
</blockquote>
<p>Das muss noch mit fixed kombiniert werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769322</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769322</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 30 Aug 2009 15:11:32 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 15:33:39 GMT]]></title><description><![CDATA[<p>Danke jetzt funktioniert es</p>
<p>Dies ist die Lösung hierzu<br />
cout &lt;&lt; setprecision(2) &lt;&lt; setiosflags(ios::fixed) &lt;&lt; Gesamtpreis;</p>
<p>Jetzt habe ich nur noch 1 kleines Problem das ich vorhin schon beschrieben habe, ich will wenn bei Hersteller nicht 1,2,3 eingegeben wird, dass das Programm eine Meldung ausgibt sie müssen 1,2 oder 3 eingeben und anschließend erneut nach der Eingabe verlangt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769340</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769340</guid><dc:creator><![CDATA[mitchandi1]]></dc:creator><pubDate>Sun, 30 Aug 2009 15:33:39 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 15:44:32 GMT]]></title><description><![CDATA[<p>mitchandi1 schrieb:</p>
<blockquote>
<p>D<br />
Jetzt habe ich nur noch 1 kleines Problem das ich vorhin schon beschrieben habe, ich will wenn bei Hersteller nicht 1,2,3 eingegeben wird, dass das Programm eine Meldung ausgibt sie müssen 1,2 oder 3 eingeben und anschließend erneut nach der Eingabe verlangt.</p>
</blockquote>
<p>Nochmal: dazu wurde dir schon eine Lösung genannt. Lies den Thread doch bitte nochmal genau durch (erster Post von SeppJ).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1769346</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769346</guid><dc:creator><![CDATA[_matze]]></dc:creator><pubDate>Sun, 30 Aug 2009 15:44:32 GMT</pubDate></item><item><title><![CDATA[Reply to Falsche Berechnung und Neustart des Programms bei eingabe eines ungültiges Wertes on Sun, 30 Aug 2009 16:06:40 GMT]]></title><description><![CDATA[<p>mitchandi1 schrieb:</p>
<blockquote>
<p>cout &lt;&lt; setprecision(2) &lt;&lt; setiosflags(ios::fixed) &lt;&lt; Gesamtpreis;</p>
</blockquote>
<p>Das geht übrigens auch etwas kürzer:</p>
<pre><code class="language-cpp">cout  &lt;&lt; setprecision(2) &lt;&lt; fixed &lt;&lt; Gesamtpreis;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1769354</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1769354</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Sun, 30 Aug 2009 16:06:40 GMT</pubDate></item></channel></rss>