<?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[Nur mithilfe von modulo und Schleifen]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Aufgabenstellung: Zwei Zahlen eingeben, beliebig lang, Programm soll herausfinden, wieviele Ziffern beide Zahlen gemeinsam haben:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main () {

int zahl1, zahl2, x, y, d, m, n, i=0;

cout &lt;&lt; &quot;Zahl 1: &quot; &lt;&lt; endl;
cin &gt;&gt; zahl1;

cout &lt;&lt; &quot;Zahl 2: &quot; &lt;&lt; endl;
cin &gt;&gt; zahl2;

m=zahl2;
n=zahl1;

while (zahl1&gt;0) {
    x=zahl1%10;
    zahl1=zahl1/10;

            while (zahl2&gt;0) {

            y=zahl2%10;
            zahl2=zahl2/10;

            if(x==y) i++;

            }

     zahl2=m;
}

if(i==0) cout &lt;&lt; &quot;Keine Zahlen gemeinsam!&quot;&lt;&lt; endl;
if(i&gt;=1) cout &lt;&lt; i &lt;&lt; &quot; gemeinsam!&quot;;
return 0;

}
</code></pre>
<p>Mein Problem: Was kann ich gegen doppelte Ziffern tun? Das Ganze soll nur mit basic Sachen durchgezogen werden können. Sprich: mod, schleifen, if abfrage.</p>
<p>Danke im Voraus <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/310468/nur-mithilfe-von-modulo-und-schleifen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 04 Aug 2026 09:39:53 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/310468.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 12 Nov 2012 14:30:28 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 14:30:28 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>folgende Aufgabenstellung: Zwei Zahlen eingeben, beliebig lang, Programm soll herausfinden, wieviele Ziffern beide Zahlen gemeinsam haben:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

int main () {

int zahl1, zahl2, x, y, d, m, n, i=0;

cout &lt;&lt; &quot;Zahl 1: &quot; &lt;&lt; endl;
cin &gt;&gt; zahl1;

cout &lt;&lt; &quot;Zahl 2: &quot; &lt;&lt; endl;
cin &gt;&gt; zahl2;

m=zahl2;
n=zahl1;

while (zahl1&gt;0) {
    x=zahl1%10;
    zahl1=zahl1/10;

            while (zahl2&gt;0) {

            y=zahl2%10;
            zahl2=zahl2/10;

            if(x==y) i++;

            }

     zahl2=m;
}

if(i==0) cout &lt;&lt; &quot;Keine Zahlen gemeinsam!&quot;&lt;&lt; endl;
if(i&gt;=1) cout &lt;&lt; i &lt;&lt; &quot; gemeinsam!&quot;;
return 0;

}
</code></pre>
<p>Mein Problem: Was kann ich gegen doppelte Ziffern tun? Das Ganze soll nur mit basic Sachen durchgezogen werden können. Sprich: mod, schleifen, if abfrage.</p>
<p>Danke im Voraus <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/2270120</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270120</guid><dc:creator><![CDATA[prim000]]></dc:creator><pubDate>Mon, 12 Nov 2012 14:30:28 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 14:40:00 GMT]]></title><description><![CDATA[<p>Interessantes Problem. Da ich mal annehme, dass du dir vorhergegangene Ziffern nicht merken darfst, schlage ich vor: Die Anzahl möglicher Ziffern ist übersichtlich (0 bis 9). Mach eine Schleife über alle möglichen Ziffern, prüfe dann ob die Ziffer in den Zahlen vorhanden ist. So wird jede Ziffer garantiert nur einmal gezählt.</p>
<p>Noch zwei Tipps für ein übersichtlicheres Programm (du wirst später noch einmal dankbar dafür sein):<br />
1. Variablen erst dort definieren, wo sie benutzt werden, nicht am Funktionsanfang.<br />
2. Variablen einen sprechenden Namen geben. Ein Programm sollte man wie ein Gedicht lesen können und damit meine ich nicht &quot;MFG&quot; von den Fantastischen Vier, wenn du verstehst <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>Entsprechend hast du bei dir im Programm auch schon die Variablen d und n eingeführt, die du überhaupt nicht benutzt (bzw. erst benutzt und dann vergisst), weil du schon in diesem Kurzprogramm den Überblick verloren hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270123</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270123</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Nov 2012 14:40:00 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 14:47:39 GMT]]></title><description><![CDATA[<p>Wenn die Zahlen beliebig lang sein dürfen, ist &quot;int&quot; der falsche Datentyp. Nimm std::string. Wenn das nicht erlaubt ist, müsstest du mit char arbeiten, da kenne ich mich jetzt aber nicht so genau aus.</p>
<p>Belassen wir es mal bei int.<br />
Das Vergleichen würde ich dann so vornehmen:<br />
b1[i] bzw. b2[i] gibt an, ob die Ziffer i in zahl1 bzw. zahl2 vorhanden ist</p>
<pre><code class="language-cpp">bool b1[10];
bool b2[10];
for (int i = 0; i &lt; 10; i++) {
    b1[i] = false;
    b2[i] = false;
}
while (zahl1 &gt; 0) {
    b1[zahl1 % 10] = true;
    zahl1 /= 10;
}
while (zahl2 &gt; 0) {
    b2[zahl2 % 10] = true;
    zahl2 /= 10;
}
int sum = 0;
for (int i = 0; i &lt; 10; i++) {
     sum += (int) (b1[i] &amp;&amp; b2[i]);
}
cout &lt;&lt; sum &lt;&lt; &quot;gemeinsam&quot; &lt;&lt; endl;
</code></pre>
<p>(nicht getestet!)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270127</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Mon, 12 Nov 2012 14:47:39 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 15:22:01 GMT]]></title><description><![CDATA[<p>reicht sowas von der aufgaben stellung her nicht schon?</p>
<pre><code>#include &lt;iostream&gt;

int main()
{
	int zahl1, zahl2;
	std::cin &gt;&gt; zahl1 &gt;&gt; zahl2;

	int counter = 0;
	int z1 = zahl1, z2 = zahl2;
	while( z1%10 == z2%10 )
	{
		z1 /= 10;
		z2 /= 10;

		counter++;
	}

	std::cout &lt;&lt; zahl1 &lt;&lt; &quot; und &quot; &lt;&lt; zahl2 &lt;&lt; &quot; haben &quot; 
                  &lt;&lt; counter &lt;&lt; &quot; Stellen gemeinsam.&quot; &lt;&lt; std::endl;
	return 0x0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2270140</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270140</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 12 Nov 2012 15:22:01 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 15:29:53 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Interessantes Problem. Da ich mal annehme, dass du dir vorhergegangene Ziffern nicht merken darfst, schlage ich vor: Die Anzahl möglicher Ziffern ist übersichtlich (0 bis 9). Mach eine Schleife über alle möglichen Ziffern, prüfe dann ob die Ziffer in den Zahlen vorhanden ist. So wird jede Ziffer garantiert nur einmal gezählt.</p>
<p>Noch zwei Tipps für ein übersichtlicheres Programm (du wirst später noch einmal dankbar dafür sein):<br />
1. Variablen erst dort definieren, wo sie benutzt werden, nicht am Funktionsanfang.<br />
2. Variablen einen sprechenden Namen geben. Ein Programm sollte man wie ein Gedicht lesen können und damit meine ich nicht &quot;MFG&quot; von den Fantastischen Vier, wenn du verstehst <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>Entsprechend hast du bei dir im Programm auch schon die Variablen d und n eingeführt, die du überhaupt nicht benutzt (bzw. erst benutzt und dann vergisst), weil du schon in diesem Kurzprogramm den Überblick verloren hast.</p>
</blockquote>
<p>Werd ich mir merken. Aber ja, Du hast recht, ich bin noch ein ganz blutiger Anfänger. <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>Kann allerdings Deinen Tipp nicht ganz nachvollziehen. Wie soll das Programm merken, welche Zahl schon vorgekommen ist?</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/28594">@Ramanujan</a>: Zu advanced leider!</p>
<p>@Skymosh: Naja, was ist mit 1234 und 1324?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270149</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270149</guid><dc:creator><![CDATA[prim000]]></dc:creator><pubDate>Mon, 12 Nov 2012 15:29:53 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 15:40:56 GMT]]></title><description><![CDATA[<p>ok, dann hab ich mir die aufgabenstellung nicht genug zu gemüte geführt :&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270154</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270154</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Mon, 12 Nov 2012 15:40:56 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 16:11:17 GMT]]></title><description><![CDATA[<p>prim000 schrieb:</p>
<blockquote>
<p>Kann allerdings Deinen Tipp nicht ganz nachvollziehen. Wie soll das Programm merken, welche Zahl schon vorgekommen ist?</p>
</blockquote>
<p>Gar nicht merken. Ich dachte an</p>
<pre><code>for (ziffer = 0; ziffer &lt; 10; ++ziffer)
{
 if (ziffer in zahl1)
  {
    if (ziffer in zahl2)
    {
     ++anzahl_gemeinsamer_ziffern;
    }
  }
}
</code></pre>
<p>Das <code>(ziffer in zahlX)</code> schreibst du entweder als Funktion oder wenn du keine Funktionen machen darfst, schreibst du es eben ganz aus. Sollte nicht schwer umzusetzen sein, da es ungefähr schon dem entspricht, was du derzeit in den Zeilen 23-30 stehen hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270169</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270169</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Nov 2012 16:11:17 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 19:40:26 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>prim000 schrieb:</p>
<blockquote>
<p>Kann allerdings Deinen Tipp nicht ganz nachvollziehen. Wie soll das Programm merken, welche Zahl schon vorgekommen ist?</p>
</blockquote>
<p>Gar nicht merken. Ich dachte an</p>
<pre><code>for (ziffer = 0; ziffer &lt; 10; ++ziffer)
{
 if (ziffer in zahl1)
  {
    if (ziffer in zahl2)
    {
     ++anzahl_gemeinsamer_ziffern;
    }
  }
}
</code></pre>
<p>Das <code>(ziffer in zahlX)</code> schreibst du entweder als Funktion oder wenn du keine Funktionen machen darfst, schreibst du es eben ganz aus. Sollte nicht schwer umzusetzen sein, da es ungefähr schon dem entspricht, was du derzeit in den Zeilen 23-30 stehen hast.</p>
</blockquote>
<p>Ahh. <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>
<pre><code>for (ziffer= 0; ziffer &lt; 10; ziffer++){ //0,1,2,3,4,...

while (zahl1&gt;0) {
    x=zahl1%10;

        if (x==ziffer){

            while (zahl2&gt;0) {

            y=zahl2%10;
            zahl2=zahl2/10;
            if(y==ziffer){i++; break;}

            }
        zahl2=m;
        }

    zahl1=zahl1/10;

}
}
</code></pre>
<p>Und was passt da jetzt nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270241</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270241</guid><dc:creator><![CDATA[prim000]]></dc:creator><pubDate>Mon, 12 Nov 2012 19:40:26 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 19:50:20 GMT]]></title><description><![CDATA[<p>prim000 schrieb:</p>
<blockquote>
<p>Und was passt da jetzt nicht?</p>
</blockquote>
<p>Gute Frage, sieht eigentlich richtig aus. Gibt es Grund zur Klage?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270246</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270246</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Nov 2012 19:50:20 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 21:35:00 GMT]]></title><description><![CDATA[<p>Ja.<br />
Mit zahl1 = 11 und zahl2 = 11 wird 4 ausgegeben, obwohl 1 richtig ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270286</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270286</guid><dc:creator><![CDATA[Ramanujan]]></dc:creator><pubDate>Mon, 12 Nov 2012 21:35:00 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Mon, 12 Nov 2012 22:25:45 GMT]]></title><description><![CDATA[<p>Ich sehe was: Nach Zeile 15 muss noch ein break, sonst zählst du die Ziffern die in der ersten Zahl mehrfach vorkommen ebenfalls mehrfach. Das erklärt aber nur einen Faktor 2.</p>
<p>Ich habe leider gerade keinen Compiler an diesem Computer, ich kann es daher nicht selber ausprobieren. Das ist jedoch eine gute Gelegenheit für dich, mal selbstständig heraus zu finden, was ein Debugger ist und wie man ihn benutzt. Der Debugger gilt als wichtigstes Werkzeug des Programmierers. Bei diesem Programm sollte das Debuggen ziemlich einfach sein, es ist also optimal, um die Grundlagen zu lernen: Folge dem Programmverlauf schrittweise. Wenn der Verlauf von dem abweicht, was du erwartest, lass dir die Werte der beteiligten Variablen anzeigen und vollzieh nach, was warum passiert. Zur Not mehrmals von vorne anfangen. Extrapunkte, wenn du es schaffst, dir vom Debugger den Wert der Variablen bei jedem Schritt automatisch anzeigen zu lassen.</p>
<p>Damit solltest du den Fehler schnell finden können.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2270295</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2270295</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 12 Nov 2012 22:25:45 GMT</pubDate></item><item><title><![CDATA[Reply to Nur mithilfe von modulo und Schleifen on Thu, 15 Nov 2012 16:37:01 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Ich sehe was: Nach Zeile 15 muss noch ein break, sonst zählst du die Ziffern die in der ersten Zahl mehrfach vorkommen ebenfalls mehrfach. Das erklärt aber nur einen Faktor 2.</p>
<p>Ich habe leider gerade keinen Compiler an diesem Computer, ich kann es daher nicht selber ausprobieren. Das ist jedoch eine gute Gelegenheit für dich, mal selbstständig heraus zu finden, was ein Debugger ist und wie man ihn benutzt. Der Debugger gilt als wichtigstes Werkzeug des Programmierers. Bei diesem Programm sollte das Debuggen ziemlich einfach sein, es ist also optimal, um die Grundlagen zu lernen: Folge dem Programmverlauf schrittweise. Wenn der Verlauf von dem abweicht, was du erwartest, lass dir die Werte der beteiligten Variablen anzeigen und vollzieh nach, was warum passiert. Zur Not mehrmals von vorne anfangen. Extrapunkte, wenn du es schaffst, dir vom Debugger den Wert der Variablen bei jedem Schritt automatisch anzeigen zu lassen.</p>
<p>Damit solltest du den Fehler schnell finden können.</p>
</blockquote>
<p>Alles klar. Das mit dem Debugger kommt sowieso bald als Thema.</p>
<p>Danke nochmal für Alles!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2271157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2271157</guid><dc:creator><![CDATA[prim000]]></dc:creator><pubDate>Thu, 15 Nov 2012 16:37:01 GMT</pubDate></item></channel></rss>