<?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[Float Ausgabe funktioniert nicht]]></title><description><![CDATA[<p>Hallo <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>ich bin neu in diesem Forum und ein relativ blutiger C++ Anfänger.</p>
<p>Wir schreiben morgen eine Arbeit in der Schule und das Hauptthema sind Felder. Der Lehrer hat uns leider so gut wie gar nichts erklärt und ich bin seit Tagen dabei mich komplett selbst reinzulesen.</p>
<p>Ich hab hier folgendes Programm geschrieben um einen Notendurchschnitt zu berechnen:</p>
<pre><code>//------------------------------------------------------------------------------------------
// Header Dateien
#include &quot;stdafx.h&quot;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;conio.h&gt;
//------------------------------------------------------------------------------------------
void FeldAuslesen(int*, int);
void FeldEinlesen(int*, int);
//------------------------------------------------------------------------------------------
// Hauptfunktion: Einstiegspunkt 
void main()
{

	while(1) 
	{

		system(&quot;cls&quot;);
		printf(&quot;\n\n\tFeld Auslesen\n&quot;);
		printf(&quot;\t--------------&quot;);
		const int N=7;
		int Feld[N];
		float Durchschnitt=1;
		Array Deklaration
		Feld[0]=16;
		Feld[1]=1;
		Feld[2]=2;
		Feld[3]=4;
		Feld[4]=4;
		Feld[5]=2;
		Feld[6]=2;
		Durchschnitt=(1*Feld[1]+2*Feld[2]+3*Feld[3]+4*Feld[4]+5*Feld[5]+6*Feld[6])/Feld[0];
		FeldAuslesen(Feld, N);
		FeldEinlesen(Feld, N);
		printf(&quot;\n\n\t Durchschnitt: %1.2f&quot;, Durchschnitt);
		printf(&quot;\n\n\t-----------------------------&quot;);
		getch();

}//main
//-------------------------------------------------------------------------------------------------------------
void FeldAuslesen(int* Feld, int N)
{
	printf(&quot;\n\n\n&quot;);
	for (int i=0; i&lt;N;i++)
		printf(&quot;%4i&quot;, Feld[i]);
}
//-------------------------------------------------------------------------------------------------------------
void FeldEinlesen(int* Feld, int N)
{
	printf(&quot;\n\n\n&quot;);
	for (int i=0; i&lt;N;i++)
		Feld[i]= rand()%49+1;
}
</code></pre>
<p>Das Feld 0 ist übrigens die Schüleranzahl. Felder 1-6 sind die verschiedenen Notenanzahlen.</p>
<p>Das meiste hat unser Lehrer uns einfach hingeklatscht ohne was dazu zu sagen.</p>
<p>Meine Probleme sind nun folgende:</p>
<p>1. Der Compiler gibt mir das Ergebnis (also den Durchschnitt) nicht als Kommazahl aus. Sondern rundet es immer ab. Ich hab ja Float als datentyp da stehen. Wieso macht er das? Wie kann ich das ändern?</p>
<p>2. Ich bin nach tagelangem nachforschen immernoch nicht dahinter gekommen, wofür genau die Feldeinlesen und Feldauslesen Funktion gut ist und wie sie arbeitet. Kann mir die Funktionsweise der beiden mal bitte jemand erläutern und sagen wozu sie notwendig sind?</p>
<p>3. (Ist nicht wichtig, aber wenn mir das noch einer zeigen könnte wär das auch cool <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ) Ich möchte irgendwie hinkriegen, dass er mir für die Arrays zufällige Zahlen eingibt. Die Schüleranzahl soll z.B 20 sein und dann soll er die Notenzahlen zufällig auf diese 20 Schüler verteilen. Aber das ist drittrangig. Wichtig ist erstmal, dass ich das mit der aus und eingabe schnalle <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/topic/324827/float-ausgabe-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Jul 2026 18:10:12 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/324827.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 03 Apr 2014 17:03:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:47:47 GMT]]></title><description><![CDATA[<p>Hallo <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>ich bin neu in diesem Forum und ein relativ blutiger C++ Anfänger.</p>
<p>Wir schreiben morgen eine Arbeit in der Schule und das Hauptthema sind Felder. Der Lehrer hat uns leider so gut wie gar nichts erklärt und ich bin seit Tagen dabei mich komplett selbst reinzulesen.</p>
<p>Ich hab hier folgendes Programm geschrieben um einen Notendurchschnitt zu berechnen:</p>
<pre><code>//------------------------------------------------------------------------------------------
// Header Dateien
#include &quot;stdafx.h&quot;
#include &lt;stdio.h&gt;
#include &lt;stdlib.h&gt;
#include &lt;conio.h&gt;
//------------------------------------------------------------------------------------------
void FeldAuslesen(int*, int);
void FeldEinlesen(int*, int);
//------------------------------------------------------------------------------------------
// Hauptfunktion: Einstiegspunkt 
void main()
{

	while(1) 
	{

		system(&quot;cls&quot;);
		printf(&quot;\n\n\tFeld Auslesen\n&quot;);
		printf(&quot;\t--------------&quot;);
		const int N=7;
		int Feld[N];
		float Durchschnitt=1;
		Array Deklaration
		Feld[0]=16;
		Feld[1]=1;
		Feld[2]=2;
		Feld[3]=4;
		Feld[4]=4;
		Feld[5]=2;
		Feld[6]=2;
		Durchschnitt=(1*Feld[1]+2*Feld[2]+3*Feld[3]+4*Feld[4]+5*Feld[5]+6*Feld[6])/Feld[0];
		FeldAuslesen(Feld, N);
		FeldEinlesen(Feld, N);
		printf(&quot;\n\n\t Durchschnitt: %1.2f&quot;, Durchschnitt);
		printf(&quot;\n\n\t-----------------------------&quot;);
		getch();

}//main
//-------------------------------------------------------------------------------------------------------------
void FeldAuslesen(int* Feld, int N)
{
	printf(&quot;\n\n\n&quot;);
	for (int i=0; i&lt;N;i++)
		printf(&quot;%4i&quot;, Feld[i]);
}
//-------------------------------------------------------------------------------------------------------------
void FeldEinlesen(int* Feld, int N)
{
	printf(&quot;\n\n\n&quot;);
	for (int i=0; i&lt;N;i++)
		Feld[i]= rand()%49+1;
}
</code></pre>
<p>Das Feld 0 ist übrigens die Schüleranzahl. Felder 1-6 sind die verschiedenen Notenanzahlen.</p>
<p>Das meiste hat unser Lehrer uns einfach hingeklatscht ohne was dazu zu sagen.</p>
<p>Meine Probleme sind nun folgende:</p>
<p>1. Der Compiler gibt mir das Ergebnis (also den Durchschnitt) nicht als Kommazahl aus. Sondern rundet es immer ab. Ich hab ja Float als datentyp da stehen. Wieso macht er das? Wie kann ich das ändern?</p>
<p>2. Ich bin nach tagelangem nachforschen immernoch nicht dahinter gekommen, wofür genau die Feldeinlesen und Feldauslesen Funktion gut ist und wie sie arbeitet. Kann mir die Funktionsweise der beiden mal bitte jemand erläutern und sagen wozu sie notwendig sind?</p>
<p>3. (Ist nicht wichtig, aber wenn mir das noch einer zeigen könnte wär das auch cool <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ) Ich möchte irgendwie hinkriegen, dass er mir für die Arrays zufällige Zahlen eingibt. Die Schüleranzahl soll z.B 20 sein und dann soll er die Notenzahlen zufällig auf diese 20 Schüler verteilen. Aber das ist drittrangig. Wichtig ist erstmal, dass ich das mit der aus und eingabe schnalle <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/2392614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392614</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:47:47 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:21:45 GMT]]></title><description><![CDATA[<p>An der Berechnung sind nur int-Werte beteiligt. Also wird auch in int gerechnet.<br />
Es reicht einen Fließkommawert anzugeben (als Literal oder als cast)</p>
<pre><code>Durchschnitt=(1*Feld[1]+2*Feld[2]+3*Feld[3]+4*Feld[4]+5*Feld[5]+6*Feld[6])*1.0/Feld[0]; // die 1.0 ist das Literal
// oder
Durchschnitt=(1*Feld[1]+2*Feld[2]+3*Feld[3]+4*Feld[4]+5*Feld[5]+6*Feld[6])/(float)Feld[0]; // als cast
</code></pre>
<p>FeldAuslesen dient zum Anzeigen des Feldes auf den Bildschirm.<br />
Dazu wird die Anfangsadresse und die Größe des Feldes übergeben.<br />
Da fehlen ein paar Leerzeichen oder \n bei der Ausgabe.</p>
<p>FeldEinlesen dient zum Befüllen des Feldes mit Zufallswerten.<br />
Dazu wird die Anfangsadresse und die Größe des Feldes übergeben.<br />
Die Funktion ist aber falsch implementiert. Feld[0] wird falsch befüllt.</p>
<p>Der Formatspecifier %f von <code>printf</code> erwartet als Längenangabe die gesamtzahl der Zeichen vor dem Punkt. Danach die Nachkommstellen.<br />
Wenn du eine Vorkommastelle und zwei Nachkommstellen haben willst ist die Angabe %4.2f (der Punkt zählt mit)</p>
<p>Nutze beim nächsten mal bitte die Code-Tags (Code mit der Maus markieren uznd auf den C-Button unter dem <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> klicken)<br />
Zudem ist das C und nicht C++ (falsches Unterforum)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392618</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392618</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:21:45 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:24:49 GMT]]></title><description><![CDATA[<p>Zu 3.<br />
Ermittele in einer Schleife z.B. 20 Zufallszahlen im Bereich von 1 bis 6 (die Noten)<br />
Abhängig von den Noten erhöhst du jedesmal den entsprechenden Eintrag von Feld[] um Eins.<br />
(nicht vergessen vorher das Feld mit Nullen zu befüllen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392619</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392619</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:24:49 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:24:51 GMT]]></title><description><![CDATA[<ol>
<li>Da du nur mit int rechnest, kommt ein ganzzahliges Ergebnis raus.<br />
Mit</li>
</ol>
<pre><code class="language-cpp">Durchschnitt=(1*Feld[1]+2*Feld[2]+3*Feld[3]+4*Feld[4]+5*Feld[5]+6*Feld[6])/(float)Feld[0];
</code></pre>
<p>erhältst du Nachkommastellen. Ich kann in der Rechnung an sich aber keinen Zusammenhang mit &quot;Durchschnitt&quot; erkennen.</p>
<ol start="2">
<li>es muss int main heißen</li>
<li>das alles ist C, nicht C++</li>
<li>FeldEinlesen macht, was du unter 3 suchst. Was FeldAuslesen macht ist doch wohl nicht so schwer, dass du hier danach fragen musst!</li>
</ol>
]]></description><link>https://www.c-plusplus.net/forum/post/2392620</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392620</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:24:51 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:48:07 GMT]]></title><description><![CDATA[<p>Dankeschön <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> das hilft mir schon weiter.<br />
Ich verstehe aber eins noch nicht:</p>
<p>printf(&quot;\n\n\n&quot;);<br />
for (int i=0; i&lt;N;i++)<br />
<strong>Feld[i]= rand()%49+1;</strong></p>
<p>Was genau macht die fett gedruckte Zeile. Rand ist ja für einen zufälligen Wert. Aber wieso steht ein i statt ein N in dem Feld und warum ist die Klammer bei rand leer?</p>
<p>Also ich hab mal probiert das Feldeinlesen wegzulassen. Dann schmeißt er mir nur hunderte von irgendwelchen Zahlen in die Konsole. Wieso das? Ich dachte das Auslesen erstellt bereits ein Feld.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392623</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392623</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:48:07 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 17:57:24 GMT]]></title><description><![CDATA[<p>Cabooze  schrieb:</p>
<blockquote>
<p>Aber wieso steht ein i statt ein N in dem Feld</p>
</blockquote>
<p>Weil das der Index ist und du ja das ganze Feld füllen willst.</p>
<p>Cabooze  schrieb:</p>
<blockquote>
<p>und warum ist die Klammer bei rand leer?</p>
</blockquote>
<p>Weil da kein Paramter nötig ist.<br />
Guckst du hier: <a href="http://www.cplusplus.com/reference/cstdlib/rand/" rel="nofollow">http://www.cplusplus.com/reference/cstdlib/rand/</a></p>
<p>Cabooze  schrieb:</p>
<blockquote>
<p>Also ich hab mal probiert das Feldeinlesen wegzulassen. Dann schmeißt er mir nur hunderte von irgendwelchen Zahlen in die Konsole. Wieso das? Ich dachte das Auslesen erstellt bereits ein Feld.</p>
</blockquote>
<p>Das FeldEinlesen sollte keine Auswirkungen auf dein Programm haben, da du es erst ganz am Ende aufrufst.<br />
FeldAuslesen erstellt kein Feld. Das passiert durch die Definition in Zeile 22.<br />
Gefüllt wird es ab Zeile 25.<br />
Zeile 24 macht einen Fehler. Bitte nur Originalcode per Copy&amp;Paste.</p>
<p>Du hattest vorhin noch eine Frage zu printf: <a href="http://www.cplusplus.com/reference/cstdio/printf/" rel="nofollow">http://www.cplusplus.com/reference/cstdio/printf/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392626</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392626</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Thu, 03 Apr 2014 17:57:24 GMT</pubDate></item><item><title><![CDATA[Reply to Float Ausgabe funktioniert nicht on Thu, 03 Apr 2014 18:23:23 GMT]]></title><description><![CDATA[<p>Okay danke. Dann hab ich das Grundprinzip verstanden denk ich <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2392638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2392638</guid><dc:creator><![CDATA[Cabooze]]></dc:creator><pubDate>Thu, 03 Apr 2014 18:23:23 GMT</pubDate></item></channel></rss>