<?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[Dürfen bei c++ keine zwei if Anweisungen auftreten??]]></title><description><![CDATA[<p>Hallo, ich hatte die funktion für Binominalkoeffizientenberechnung geschrieben</p>
<pre><code class="language-cpp">int Binom (int m, int n){
int bn;
   if(n&lt;0 || n&gt;m)
	bn=0;
   else if(m==0 &amp;&amp; n==0)
	bn=1;
   else
	bn = Binom(m-1,n-1)+Binom(m-1,n);
   return bn;
}
</code></pre>
<p>Und statt else if hatte ich nur if stehen bei der zweiten Anweisung. Dadurch bekam ich bei Ausführen des Programms den Fehler: &quot;Segmentation fault&quot;.</p>
<p>Nun meine frage: warum darf hier nicht zwei mal das if stehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/304795/dürfen-bei-c-keine-zwei-if-anweisungen-auftreten</link><generator>RSS for Node</generator><lastBuildDate>Wed, 24 Jun 2026 07:35:59 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/304795.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 14 Jun 2012 12:53:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 12:54:18 GMT]]></title><description><![CDATA[<p>Hallo, ich hatte die funktion für Binominalkoeffizientenberechnung geschrieben</p>
<pre><code class="language-cpp">int Binom (int m, int n){
int bn;
   if(n&lt;0 || n&gt;m)
	bn=0;
   else if(m==0 &amp;&amp; n==0)
	bn=1;
   else
	bn = Binom(m-1,n-1)+Binom(m-1,n);
   return bn;
}
</code></pre>
<p>Und statt else if hatte ich nur if stehen bei der zweiten Anweisung. Dadurch bekam ich bei Ausführen des Programms den Fehler: &quot;Segmentation fault&quot;.</p>
<p>Nun meine frage: warum darf hier nicht zwei mal das if stehen ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223110</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Thu, 14 Jun 2012 12:54:18 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:03:58 GMT]]></title><description><![CDATA[<p>Das if darf hier natürlich &quot;zweimal stehen&quot;. Den Segfault bekommst du wohl, weil es ein Fehler in deiner Programmlogik ist, wenn das if dort &quot;zweimal steht&quot;...</p>
<p>EDIT: Ich würd mir generell noch mal überlegen, ob das überhaupt stimmen kann was du da gebaut hast...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223112</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223112</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:03:58 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:03:22 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Das if darf hier natürlich &quot;zweimal stehen&quot;. Den Segfault bekommst du wohl, weil es ein Fehler in deiner Programmlogik ist, wenn das if dort &quot;zweimal steht&quot;...</p>
</blockquote>
<p>Ja, aber das gleiche mit C geschrieben ergibt keinen Fehler.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223117</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:03:22 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:09:52 GMT]]></title><description><![CDATA[<p>Namal schrieb:</p>
<blockquote>
<p>Ja, aber das gleiche mit C geschrieben ergibt keinen Fehler.</p>
</blockquote>
<p>???</p>
<p>Der Schnipsel, den du da gepostet hast, ist genauso gültiges C wie C++. Auch mit &quot;zweimal if&quot;.</p>
<p>edit: natürlich ist die Programlogik mit &quot;zweimal if&quot; völlig falsch.</p>
<pre><code class="language-cpp">if(a == 0)
  machWas();

if(a == 1)
  machWasAnderes();
else
  machWasTolles();
</code></pre>
<p>Preisfrage an dich: wenn a == 0 ist, macht das Programm dann was tolles?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223119</guid><dc:creator><![CDATA[daddy_felix]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:09:52 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:08:39 GMT]]></title><description><![CDATA[<p>Ohne Code nix los. Lies dir mal den dritten Link in meiner Signatur durch, welcher Code hier wohl relevant sein dürfte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223123</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:08:39 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:16:38 GMT]]></title><description><![CDATA[<p>Das hier ist der gesammte Quelltext</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int Binom (int m, int n){
int bn;
   if(n&lt;0 || n&gt;m)
	bn=0;
   else if(m==0 &amp;&amp; n==0)
	bn=1;
   else
	bn = Binom(m-1,n-1)+Binom(m-1,n);
   return bn;
}

int main (){

cout&lt;&lt;&quot;Wieviele Zeilen sollen ausgegeben werden?&quot;&lt;&lt;'\n';
int i;
cin&gt;&gt;i;

for(int m=0;m&lt;i;++m){
   for(int n=0;n&lt;=m;++n)
   cout&lt;&lt;Binom(m,n)&lt;&lt;&quot; &quot;;
   cout&lt;&lt;'\n';	    
}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2223126</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223126</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:16:38 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:23:53 GMT]]></title><description><![CDATA[<p>Wenn n &lt; 0 oder n &gt; m ist, dann möchtest du eigentlich abbrechen. Das prüfst du in Zeile 9. Wenn die Bedingung zutrifft wird bn = 0 gesetzt und da das darauf folgende alles im else-Zeig vom if in Zeile 9 steht, rutscht der Programmablauf danach zum return in Zeile 15. So willst du es auch.</p>
<p>Lässt du aber das erste else weg, so wird auch if(m==0 &amp;&amp; n==0) geprüft. Dies ist aber unwahr (wenn Zeile 9 wahr war). Daher wird der else-Zweig dazu ausgeführt. In diesem steckt aber die Rekursion. Folglich bricht die Rekursion niemals ab und du bekommst einen Fehler.</p>
<p>Dies wäre aber in C genau so, da, wie schon korrekt festgestellt wurde, deine Funktion in C genau so aussähe und die Sprachen nun auch nicht so unterschiedlich sind, dass es hier relevant wäre. Daher wäre dein C-Programm interessant zu sehen, dieses ist nämlich bestimmt nicht äquivalent.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223132</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223132</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:23:53 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 13:59:34 GMT]]></title><description><![CDATA[<p>Ja, danke, dann hat sich das aufgeklärt. Bei meinem C programm, hatte ich die ersten beiden Anweisungen vertauscht rum stehen, deshalb gabs bei der Ausgabe zwar keinen fehler, aber lauter Nullen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2223160</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223160</guid><dc:creator><![CDATA[Namal]]></dc:creator><pubDate>Thu, 14 Jun 2012 13:59:34 GMT</pubDate></item><item><title><![CDATA[Reply to Dürfen bei c++ keine zwei if Anweisungen auftreten?? on Thu, 14 Jun 2012 15:01:45 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int Binom (int m, int n){
   if(n&lt;0 || n&gt;m)
	return 0;
   if(m==0 &amp;&amp; n==0)
	return 1;
   return Binom(m-1,n-1)+Binom(m-1,n);
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2223180</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2223180</guid><dc:creator><![CDATA[Fl0]]></dc:creator><pubDate>Thu, 14 Jun 2012 15:01:45 GMT</pubDate></item></channel></rss>