<?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[Funktionsrückgabewert ein Array]]></title><description><![CDATA[<p>Hi,<br />
ich bräuchte nochmal eure Hilfe <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="🙂"
    /><br />
Die Aufgabe lautet:<br />
Schreiben Sie ein C++-Programm, welches eine Funktionsschablone namens vergleicher<br />
enthalt und als Parameter zwei Arrays a und b, sowie deren Lange (die Arrays sollen<br />
die gleiche Lange haben) ubergeben bekommt. Die Schablone soll uber die Arrays iterieren<br />
und samtliche Array-Elemente miteinander addieren, welche den gleichen Wert<br />
haben. Ist a[i] &lt; b[i] wird fur diese Elemente nichts berechnet. Ist a[i] &gt; b[i], so<br />
soll die Dierenz a[i] - b[i] gebildet werden. Die Ergebnisse sollen in einem dritten<br />
Array gespeichert und anschlieend von der Funktionsschablone zuruckgegeben werden<br />
(0,5 Punkte).<br />
Beachten Sie hierbei, dass die Funktionsschablone beliebige Typen von Zahlen verarbeiten<br />
konnen soll. Die als Parameter ubergebenen Arrays mussen somit nicht bei jedem<br />
Funktionsaufruf den gleichen Datentyp haben (0,5 Punkte).<br />
Da nicht fur alle Elemente der Eingabe ein Wert berechnet wird, muss das Array mit den<br />
Ergebnissen nicht die gleiche Lange haben wie die Eingabe. Implementieren Sie die Funktionsschablone<br />
so, dass das Array mit den Ergebnissen und dessen Lange in sinnvoller Art<br />
und Weise an den Aufrufer der Funktionsschablone zuruckgegeben werden (0,5 Punkte).<br />
Fuhren Sie Ihr Programm mit der vorgegebenen Testeingabe aus und geben Sie die Arrays<br />
mit den Ergebnissen elementweise aus. Fugen Sie die Ausgaben als Kommentar an das<br />
Ende der Datei. Aufgabe 06 1b.cpp an (0,5 Punkte).<br />
# include &lt;iostream &gt;<br />
using namespace std ;</p>
<p>// *****************************************<br />
// Hier bitte die Funktionsschablone<br />
// vergleicher () erganzen<br />
// *****************************************</p>
<p>int main () {<br />
int const laenge = 15;<br />
int eingabe1A [ laenge ] = {0, 15, 5, 7, 4, 90, 37, 11, 13,<br />
19, 101 , 333 , 459 , 233 , 87};<br />
int eingabe1B [ laenge ] = {0, 15, 25, 37, 74, 3, 7, 101 , 3,<br />
14, 101 , 333 , 459 , 233 , 87};<br />
double eingabe2A [ laenge ] = {0. , 10. , 5., 7., 13. , 90. , 37. ,<br />
11. , 13. , 99. , 101. , 33. , 48. , 233.};<br />
double eingabe2B [ laenge ] = {0. , 11. , 4., 7., 3., 9., 327. ,<br />
121. , 13. , 911. , 101. , 33. , 48. , 233.};<br />
long eingabe3A [ laenge ] = {0, 0, 15, 7, 33, 90, 37, 21,</p>
<p>33, 99, 101 , 33, 458 , 23};<br />
long eingabe3B [ laenge ] = {0, 10, 25, 7, 33, 90, 37, 11,<br />
33, 99, 1001 , 333 , 4598 , 23};</p>
<p>// *****************************************************<br />
// Hier bitte die Definition der Funktionsschablone<br />
// mit den drei Paaren von Arrays nacheinander<br />
// aufrufen und die Ergebnisse ausgeben.<br />
// ****************************************************</p>
<p>return 0;<br />
}</p>
<p>Mein Programmcode sieht so aus:</p>
<p># include &lt;iostream &gt;<br />
using namespace std ;</p>
<p>// ******************************************************<br />
// Hier bitte die Funktionsschablone vergleicher () erganzen<br />
// ******************************************************</p>
<p>template &lt;typename T&gt;<br />
T vergleicher (T a[], T b[], int const laenge){<br />
int i=0<br />
T c[];<br />
int f=0</p>
<p>for(i=0;i&lt;laenge;i++){<br />
if(a[i]==b[i]){<br />
a[i]+b[i]=c[f];<br />
f++;<br />
}<br />
if(a[i]&gt;b[i]){<br />
a[i]-b[i]=c[f];<br />
f++;<br />
}<br />
}</p>
<p>return<br />
}</p>
<p>int main () {</p>
<p>int const laenge = 15;<br />
int eingabe1A [ laenge ] = {0, 15, 5, 7, 4, 90, 37, 11, 13, 19, 101 , 333 , 459 , 233 , 87};<br />
int eingabe1B [ laenge ] = {0, 15, 25, 37, 74, 3, 7, 101 , 3, 14, 101 , 333 , 459 , 233 , 87};<br />
double eingabe2A [ laenge ] = {0. , 10. , 5., 7., 13. , 90. , 37. ,11. , 13. , 99. , 101. , 33. , 48. , 233.};<br />
double eingabe2B [ laenge ] = {0. , 11. , 4., 7., 3., 9., 327. ,121. , 13. , 911. , 101. , 33. , 48. , 233.};<br />
long eingabe3A [ laenge ] = {0, 0, 15, 7, 33, 90, 37, 21, 33, 99, 101 , 33, 458 , 23};<br />
long eingabe3B [ laenge ] = {0, 10, 25, 7, 33, 90, 37, 11, 33, 99, 1001 , 333 , 4598 , 23};</p>
<p>cout&lt;&lt;&quot;eingabe 1a und 1b: &quot;&lt;&lt;vergleicher&lt;int&gt;(eingabe1A, eingabe1B, laenge)&lt;&lt;endl;</p>
<p>cin.get();<br />
return 0;<br />
}</p>
<p>Mein Frage ist nun wie ich das c[] an die mainfunktion übergeben soll.<br />
Das mit Referenzen gearbeitet wird bei den Arrays ist mir bewusst, nur muss ich ja ein Array zurückgeben da c[] nicht in der mainfunktion existiert.</p>
<p>MfG Andy</p>
<p>PS: Schon mal Danke für eure Hilfe <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/topic/311170/funktionsrückgabewert-ein-array</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 00:32:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/311170.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Nov 2012 19:19:42 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 19:20:45 GMT]]></title><description><![CDATA[<p>Hi,<br />
ich bräuchte nochmal eure Hilfe <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="🙂"
    /><br />
Die Aufgabe lautet:<br />
Schreiben Sie ein C++-Programm, welches eine Funktionsschablone namens vergleicher<br />
enthalt und als Parameter zwei Arrays a und b, sowie deren Lange (die Arrays sollen<br />
die gleiche Lange haben) ubergeben bekommt. Die Schablone soll uber die Arrays iterieren<br />
und samtliche Array-Elemente miteinander addieren, welche den gleichen Wert<br />
haben. Ist a[i] &lt; b[i] wird fur diese Elemente nichts berechnet. Ist a[i] &gt; b[i], so<br />
soll die Dierenz a[i] - b[i] gebildet werden. Die Ergebnisse sollen in einem dritten<br />
Array gespeichert und anschlieend von der Funktionsschablone zuruckgegeben werden<br />
(0,5 Punkte).<br />
Beachten Sie hierbei, dass die Funktionsschablone beliebige Typen von Zahlen verarbeiten<br />
konnen soll. Die als Parameter ubergebenen Arrays mussen somit nicht bei jedem<br />
Funktionsaufruf den gleichen Datentyp haben (0,5 Punkte).<br />
Da nicht fur alle Elemente der Eingabe ein Wert berechnet wird, muss das Array mit den<br />
Ergebnissen nicht die gleiche Lange haben wie die Eingabe. Implementieren Sie die Funktionsschablone<br />
so, dass das Array mit den Ergebnissen und dessen Lange in sinnvoller Art<br />
und Weise an den Aufrufer der Funktionsschablone zuruckgegeben werden (0,5 Punkte).<br />
Fuhren Sie Ihr Programm mit der vorgegebenen Testeingabe aus und geben Sie die Arrays<br />
mit den Ergebnissen elementweise aus. Fugen Sie die Ausgaben als Kommentar an das<br />
Ende der Datei. Aufgabe 06 1b.cpp an (0,5 Punkte).<br />
# include &lt;iostream &gt;<br />
using namespace std ;</p>
<p>// *****************************************<br />
// Hier bitte die Funktionsschablone<br />
// vergleicher () erganzen<br />
// *****************************************</p>
<p>int main () {<br />
int const laenge = 15;<br />
int eingabe1A [ laenge ] = {0, 15, 5, 7, 4, 90, 37, 11, 13,<br />
19, 101 , 333 , 459 , 233 , 87};<br />
int eingabe1B [ laenge ] = {0, 15, 25, 37, 74, 3, 7, 101 , 3,<br />
14, 101 , 333 , 459 , 233 , 87};<br />
double eingabe2A [ laenge ] = {0. , 10. , 5., 7., 13. , 90. , 37. ,<br />
11. , 13. , 99. , 101. , 33. , 48. , 233.};<br />
double eingabe2B [ laenge ] = {0. , 11. , 4., 7., 3., 9., 327. ,<br />
121. , 13. , 911. , 101. , 33. , 48. , 233.};<br />
long eingabe3A [ laenge ] = {0, 0, 15, 7, 33, 90, 37, 21,</p>
<p>33, 99, 101 , 33, 458 , 23};<br />
long eingabe3B [ laenge ] = {0, 10, 25, 7, 33, 90, 37, 11,<br />
33, 99, 1001 , 333 , 4598 , 23};</p>
<p>// *****************************************************<br />
// Hier bitte die Definition der Funktionsschablone<br />
// mit den drei Paaren von Arrays nacheinander<br />
// aufrufen und die Ergebnisse ausgeben.<br />
// ****************************************************</p>
<p>return 0;<br />
}</p>
<p>Mein Programmcode sieht so aus:</p>
<p># include &lt;iostream &gt;<br />
using namespace std ;</p>
<p>// ******************************************************<br />
// Hier bitte die Funktionsschablone vergleicher () erganzen<br />
// ******************************************************</p>
<p>template &lt;typename T&gt;<br />
T vergleicher (T a[], T b[], int const laenge){<br />
int i=0<br />
T c[];<br />
int f=0</p>
<p>for(i=0;i&lt;laenge;i++){<br />
if(a[i]==b[i]){<br />
a[i]+b[i]=c[f];<br />
f++;<br />
}<br />
if(a[i]&gt;b[i]){<br />
a[i]-b[i]=c[f];<br />
f++;<br />
}<br />
}</p>
<p>return<br />
}</p>
<p>int main () {</p>
<p>int const laenge = 15;<br />
int eingabe1A [ laenge ] = {0, 15, 5, 7, 4, 90, 37, 11, 13, 19, 101 , 333 , 459 , 233 , 87};<br />
int eingabe1B [ laenge ] = {0, 15, 25, 37, 74, 3, 7, 101 , 3, 14, 101 , 333 , 459 , 233 , 87};<br />
double eingabe2A [ laenge ] = {0. , 10. , 5., 7., 13. , 90. , 37. ,11. , 13. , 99. , 101. , 33. , 48. , 233.};<br />
double eingabe2B [ laenge ] = {0. , 11. , 4., 7., 3., 9., 327. ,121. , 13. , 911. , 101. , 33. , 48. , 233.};<br />
long eingabe3A [ laenge ] = {0, 0, 15, 7, 33, 90, 37, 21, 33, 99, 101 , 33, 458 , 23};<br />
long eingabe3B [ laenge ] = {0, 10, 25, 7, 33, 90, 37, 11, 33, 99, 1001 , 333 , 4598 , 23};</p>
<p>cout&lt;&lt;&quot;eingabe 1a und 1b: &quot;&lt;&lt;vergleicher&lt;int&gt;(eingabe1A, eingabe1B, laenge)&lt;&lt;endl;</p>
<p>cin.get();<br />
return 0;<br />
}</p>
<p>Mein Frage ist nun wie ich das c[] an die mainfunktion übergeben soll.<br />
Das mit Referenzen gearbeitet wird bei den Arrays ist mir bewusst, nur muss ich ja ein Array zurückgeben da c[] nicht in der mainfunktion existiert.</p>
<p>MfG Andy</p>
<p>PS: Schon mal Danke für eure Hilfe <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/2275568</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275568</guid><dc:creator><![CDATA[andydroid]]></dc:creator><pubDate>Wed, 28 Nov 2012 19:20:45 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 19:22:19 GMT]]></title><description><![CDATA[<p>Schon mal was von Containern gehört?<br />
Guck dir mal die STL-Container, genauer den <code>std::vector</code> an!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2275569</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275569</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Wed, 28 Nov 2012 19:22:19 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 19:28:22 GMT]]></title><description><![CDATA[<p>leider dürfen wir keine andere Bibliothek benutzen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2275571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275571</guid><dc:creator><![CDATA[andydroid]]></dc:creator><pubDate>Wed, 28 Nov 2012 19:28:22 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 19:50:13 GMT]]></title><description><![CDATA[<p>andydroid schrieb:</p>
<blockquote>
<p>leider dürfen wir keine andere Bibliothek benutzen</p>
</blockquote>
<p>Warum verwendest du dann &lt;iostream&gt;?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2275579</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275579</guid><dc:creator><![CDATA[andere]]></dc:creator><pubDate>Wed, 28 Nov 2012 19:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 19:55:59 GMT]]></title><description><![CDATA[<p>weil die in der aufgabe vorgegeben war. Das habe ich nicht mit kopiert, falls das für Verwirrung gesorgt hat tut es mir leid. Die einzige Bibliothek die wir benutzen dürfen ist iostream</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2275581</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275581</guid><dc:creator><![CDATA[andydroid]]></dc:creator><pubDate>Wed, 28 Nov 2012 19:55:59 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Wed, 28 Nov 2012 22:15:34 GMT]]></title><description><![CDATA[<p>Was glaubst du tut das?</p>
<pre><code class="language-cpp">a[i]+b[i]=c[f];
</code></pre>
<p>Du wirst wohl ein auf dem Heap allokiertes Array (Stichwort new[]) per Pointer zurückgeben müssen. Die Größeninformation gibst du über einen Referenzparameter der Funktion zurück. (Es sind deine Hausaufgaben, ich gebe dir hier nur ein paar Hinweis)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2275628</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275628</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Wed, 28 Nov 2012 22:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to Funktionsrückgabewert ein Array on Thu, 29 Nov 2012 19:29:20 GMT]]></title><description><![CDATA[<p>Ist das alles statisch? Dann kannst du die Type-Deduktion zur Hilfe nehmen</p>
<pre><code>template &lt;typename T, std::size_t N&gt;
void fun (T (&amp;array)[N])
{
  // ... do stuff
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2275897</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2275897</guid><dc:creator><![CDATA[ScottZhang]]></dc:creator><pubDate>Thu, 29 Nov 2012 19:29:20 GMT</pubDate></item></channel></rss>