<?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[Hilfe bei einer Funktion]]></title><description><![CDATA[<p>wenn a zeichen in der zweiten zahl minus is dann zur add wenn net dann entweder zahl1 größer zahl 2 dann normal und zahhl2 größer zahl 1 dann z2-z1</p>
<pre><code class="language-cpp">void sub(void)
 {
  eingabe();
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]='-')
{
add();
}

else
{
 if(zeichen[0]&gt;=zeichen[1])
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z1-z2+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt; ergebnis;
   }

 else
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;
    }
  }
  getchar();
 }
</code></pre>
<p>und da geht was net es schaut meist so aus<br />
schaut so aus</p>
<p>zahl1:5 //hab ich selbst eingegeben</p>
<p>zahl2:4 //hab ich selbst eingegeben<br />
zahl1:5 //hab ich selbst eingegeben<br />
zahl2:4 //hab ich selbst eingegeben<br />
000000000000000000000009 //passt nicht müsste 1 rauskommen</p>
<p>warum wiederholt er die eingabe zweimal??<br />
und warum kommt nicht das richtige ergebnis raus??</p>
<p>über eine schnelle antwort wäre ich sehr dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/129197/hilfe-bei-einer-funktion</link><generator>RSS for Node</generator><lastBuildDate>Wed, 26 Aug 2026 04:55:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/129197.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 11 Dec 2005 11:50:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Sun, 11 Dec 2005 11:50:14 GMT]]></title><description><![CDATA[<p>wenn a zeichen in der zweiten zahl minus is dann zur add wenn net dann entweder zahl1 größer zahl 2 dann normal und zahhl2 größer zahl 1 dann z2-z1</p>
<pre><code class="language-cpp">void sub(void)
 {
  eingabe();
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]='-')
{
add();
}

else
{
 if(zeichen[0]&gt;=zeichen[1])
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z1-z2+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt; ergebnis;
   }

 else
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;
    }
  }
  getchar();
 }
</code></pre>
<p>und da geht was net es schaut meist so aus<br />
schaut so aus</p>
<p>zahl1:5 //hab ich selbst eingegeben</p>
<p>zahl2:4 //hab ich selbst eingegeben<br />
zahl1:5 //hab ich selbst eingegeben<br />
zahl2:4 //hab ich selbst eingegeben<br />
000000000000000000000009 //passt nicht müsste 1 rauskommen</p>
<p>warum wiederholt er die eingabe zweimal??<br />
und warum kommt nicht das richtige ergebnis raus??</p>
<p>über eine schnelle antwort wäre ich sehr dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939482</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939482</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Sun, 11 Dec 2005 11:50:14 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Sun, 11 Dec 2005 11:55:24 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">if(zeichen[1][0]='-')
</code></pre>
<p>Du weißt hier dem Array zeichen ein - zu anstatt abzufragen ob es minus ist.</p>
<pre><code class="language-cpp">if(zeichen[1][0]=='-')
</code></pre>
<p>Aber keine Ahnung ob das was mit dem Fehler zu tun hat.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939485</guid><dc:creator><![CDATA[effe_eichelt]]></dc:creator><pubDate>Sun, 11 Dec 2005 11:55:24 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Sun, 11 Dec 2005 11:58:08 GMT]]></title><description><![CDATA[<p>also jetzt funktionier das letze: 1-2=-1 das geht der rest nicht<br />
bei 5-4= /-<br />
bei 5--5 zweimal die eingabe und als ergebnis a paar 0000000000000.0</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939488</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Sun, 11 Dec 2005 11:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Sun, 11 Dec 2005 15:16:29 GMT]]></title><description><![CDATA[<p>Funktioniert immer noch nicht. Wäre über weitere Hilfe dankbar</p>
]]></description><link>https://www.c-plusplus.net/forum/post/939600</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/939600</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Sun, 11 Dec 2005 15:16:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 15:03:52 GMT]]></title><description><![CDATA[<p>anscheinend weiß keiner eine Lösung für mein Problem. Ich selbst finde keins.<br />
Falls doch noch einer was weiß dann schreib BITTE</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940337</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940337</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Mon, 12 Dec 2005 15:03:52 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 17:40:46 GMT]]></title><description><![CDATA[<p>Problem mit der Eingabe ist beseitigt. Funktioniert aber immer noch nicht<br />
schaut euch ihn bitte mal an und sagt mir was falsch daran is. Laut BorlandBuilder ist irgendwo einfehler in den If schleifen die geht nicht ins erste else rein</p>
<pre><code>//subtraktion

 void sub(void)
 {
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]=='-')
{
add();
}

else
{
 if(zeichen[0]&gt;=zeichen[1])
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z1-z2+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt; ergebnis;
   }

 else
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;
    }
  }
  getchar();
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940423</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Mon, 12 Dec 2005 17:40:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 20:09:46 GMT]]></title><description><![CDATA[<p>Da du uns nicht mehr info geben willst werde ich mal etwas raten.</p>
<pre><code class="language-cpp">void sub(void)
 {
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]); // aha zeichen ist also ein array von strings
  if(zeichen[1][0]=='-') {  
    add();                  // aha ein Vorzeichen
  }
  else {                    // wirklich subtrahieren
   if(zeichen[0]&gt;=zeichen[1])  { // da stimmt was nicht
                                 // zeichen[0] und zeichen[1] sind ja strings 
                                 // kann mann die so einfach auf &gt;= abfragen ?
                                 // eher nicht.
                                 // vielleicht sind's aber doch std::string und das strlen() oben war falsch ?
     for (i-=1;i&gt;=0;i--) {

             z1=zeichen[0][i]-'0'; // aha aus char mach int
             z2=zeichen[1][i]-'0';

             summe=z1-z2+uebertrag;

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0'; // jetzt verstehe ich da werden 
                                       // strings subtrahiert
                                       // ich geb auf das hätte er auch gleich sagen können
                                       // der fehler liegt wahrscheinlich  sowieso am stringvergleich
    .....
 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940599</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940599</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Mon, 12 Dec 2005 20:09:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 20:55:55 GMT]]></title><description><![CDATA[<p>Ihr müsst mir nur sagen was ich machen soll. Da ja keiner geantwortet hab wusste ich nicht was ich noch machen soll.</p>
<pre><code>//subtraktion

 void sub(void)
 {
  int z1;                                       //int aller benötigten Sachen
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]=='-')                       //schaut ob im zweiten Array Zeichen ein Minus ist
{
add();                                       //wenn ja benutze die Additionsfunktion
}

else                                        //falls nicht
{
 if(zeichen[0]&gt;=zeichen[1])                 //sollte die 1te Zahl größer sein als die 2te
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';          //dient zur berechnung ist eine  
                                            // additionsfunk die Funktioniert
             z2=zeichen[1][i]-'0';          //nur umgeschrieben laut tipp eines
                                            //ehemaltigen TAI´ler
             summe=z1-z2+uebertrag;       //dann Zahl1-Zahl2 in SUmme speichern

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt; ergebnis;         //ergebnis
   }

 else                                    //wenn2te größer 1st
   {                                     //das funktioniert
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';       //Hier das gleiche wie oben
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;      //Zahl2-Zahle1

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;        //ergebnis mit Minus davor
    }
  }
  getchar();
 }
</code></pre>
<p>Für mehr Info´s einfach fragen. auf wunsch kann ich euch auch den ganzen code schicken</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940641</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940641</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Mon, 12 Dec 2005 20:55:55 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 21:02:23 GMT]]></title><description><![CDATA[<p>der ganze code wär cool :xmas1:</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940645</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940645</guid><dc:creator><![CDATA[icepacker]]></dc:creator><pubDate>Mon, 12 Dec 2005 21:02:23 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 21:23:27 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
 char zeichen[2][21];
 char ergebnis[100];
 void auswahl(void);
 void eingabe(void);
 void add(void);
 void sub(void);
 void mult(void);
 void div(void);
 void ausgabe(void);
int main()
{
        auswahl();

        return 0;
}

//FUNKTIONEN

//Auswahl
void auswahl(void)
{
int i;
cout &lt;&lt; &quot;1.Addition\n\n2.Subtraktion\n\n3.Multiplikation\n\n4.Division&quot;;
cin &gt;&gt;i;
switch (i)
{
case 1 : eingabe();
         add();
         break;
case 2 : eingabe();
         sub();
         break;
case 3 : eingabe();
         mult();
         break;
case 4 : eingabe();
         div();
         break;
default:cout &lt;&lt; &quot;unknown command&quot; ;
}
}

//Eingabe
void eingabe (void)
{
     cout&lt;&lt; &quot;zahl1: &quot;;
     gets(zeichen[0]);
     cout &lt;&lt; &quot;\nzahl2: &quot;;
     gets(zeichen[1]);

     return;
}

//addition

 void add(void)                               //additionsfunkton
 {
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int p=strlen(zeichen[0]);
  int q=strlen(zeichen[1]);
  p--;
  q--;
    for (int i=19;i&gt;=0;i--)
    {
           if (p&gt;=0)
           {
              z1=zeichen[0][p]-'0';
           }
           else
           {
               z1=0;
           }
           if (q&gt;=0)
           {
               z2=zeichen[1][q]-'0';
           }
           else
           {
              z2=0;
           }

           summe=z1+z2+uebertrag;

           uebertrag=summe/10;
           ergebnis[i]=summe%10+'0';
           p--;
           q--;
    }

             cout &lt;&lt; ergebnis;

  getchar();
 }

 //subtraktion

 void sub(void)
 {
  int z1;                                       //int aller benötigten Sachen
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]=='-')                       //schaut ob im zweiten Array Zeichen ein Minus ist
{
add();                                       //wenn ja benutze die Additionsfunktion
}

else                                        //falls nicht
{
 if(zeichen[0]&gt;=zeichen[1])                 //sollte die 1te Zahl größer sein als die 2te
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';          //dient zur berechnung ist eine additionsfunk
             z2=zeichen[1][i]-'0';          //nur umgeschrieben

             summe=z1-z2+uebertrag;       //dann Zahl1-Zahl2 in SUmme speichern

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt; ergebnis;         //ergebnis
   }

 else                                    //wenn2te größer 1st
   {                                     //das funktioniert
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';       //Hier das gleiche wie oben
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;      //Zahl2-Zahle1

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;        //ergebnis mit Minus davor
    }
  }
  getchar();
 }

 void mult(void)
 {
  eingabe();

 }

 void div(void)
 {
  eingabe();

 }

 void ausgabe (void)
 {

 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940661</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940661</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Mon, 12 Dec 2005 21:23:27 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Mon, 12 Dec 2005 21:59:10 GMT]]></title><description><![CDATA[<p>Ok jetzt ist es klar. zeichen sind char **.<br />
es muss heissen</p>
<pre><code class="language-cpp">if( strcmp(zeichen[0],zeichen[1])&gt;= 1 ){ //sollte die 1te Zahl größer sein als die 2te
                                          // funktioniert wahrscheinlich nur wenn die strings gleich lang sind
</code></pre>
<p>Kurt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940690</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940690</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Mon, 12 Dec 2005 21:59:10 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 11:34:29 GMT]]></title><description><![CDATA[<p>gute danke funktioniert. Etz weis ich nur net wie ich des anstellen soll das man verschieden lange zahlen subrahieren kann. Hat da jemand eine Idee und kann mir da weng helfen?</p>
<pre><code class="language-cpp">//##############################################################
 //##                Subtraktionsfunktion                      ##
 //##############################################################

 void sub(void)
 {
  int z1;                                     //int aller benötigten Sachen
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);

if(zeichen[1][0]=='-')                       //schaut ob im zweiten Array Zeichen ein Minus ist
{
 add();                                      //wenn ja benutze die Additionsfunktion
}

else                                        //falls nicht
 {
 if(strcmp(zeichen[0],zeichen[1])&gt;=1)       //sollte die 1te Zahl größer sein als die 2te
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';          //dient zur berechnung ist eine additionsfunk
             z2=zeichen[1][i]-'0';         //wandelt char in int variablen um

             summe=z1-z2+uebertrag;        //dann Zahl1-Zahl2 in SUmme speichern

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt;&quot;\n\nIhr Ergebnis lautet: &quot; &lt;&lt; ergebnis;           //ergebnis
   }

 else                                    //wenn2te größer 1st
   {                                     //das funktioniert
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';       //Hier das gleiche wie oben
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;      //Zahl2-Zahl1

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt;&quot;\n\nIhr Ergebnis lautet: &quot; &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;        //ergebnis mit Minus davor
    }
 }
 getchar();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940909</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940909</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 11:41:57 GMT]]></title><description><![CDATA[<p>Du kannst die zu kurzen Zahlen vor der Rechnung ans Ende des Arrays schieben und vorne mit Nullen auffüllen - danach ist wieder die feste-Länge-Version anwendbar.</p>
<p>(übrigens wäre es eine gute Idee, vor dem Aufruf der add()-Funktion das Minus wegzustreichen)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940922</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:41:57 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 11:47:50 GMT]]></title><description><![CDATA[<p>und wie mach ich des?</p>
<blockquote>
<p>Du kannst die zu kurzen Zahlen vor der Rechnung ans Ende des Arrays schieben und vorne mit Nullen auffüllen - danach ist wieder die feste-Länge-Version anwendbar</p>
</blockquote>
<p>des mit den Minus des woll ma machen. schauen aber erstmal das wir das programm zum laufen bringen. Haben bei der additions funktion auch noch die 0´ln vorm ergebnis</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940929</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940929</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 11:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:06:44 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">int l=strlen(zahlen[0]);        //Länge bestimmt
memmove(zahlen[0]+20-l,zahlen[0],l); //Verschieben
memset(zahlen[0],'0',20-l);          //Auffüllen
</code></pre>
<p>(Ob die Indizes alle korrekt sind, kann ich nicht garantieren)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940959</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940959</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:06:44 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:14:01 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">memmove(zeichen[0]+20-l,zeichen[0],l); //Verschieben
  memset(zeichen[0],'0',20-l);          //Auffüllen
</code></pre>
<p>die memmove und memset befehle hatten wir noch nicht daher verstehe ich nicht ganz wo ich die reinsetzen soll.(habe aus deinen zahlen mal zeichen gemacht weil so unsere arrays heißen</p>
<p>erklärung wäre evtl hilfreich damit ich versteh wo ich das reinsetzen soll iin meine sub funktion</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940969</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940969</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:19:51 GMT]]></title><description><![CDATA[<p>Ich würde das dort machen wo zeichen[0] und zeichen[1] ihre werte erhalten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940978</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940978</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:19:51 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:35:46 GMT]]></title><description><![CDATA[<p>also bei der eingabe funkt des schaut etza so aus</p>
<pre><code class="language-cpp">void eingabe (void)
{
     cout&lt;&lt; &quot;\nGeben Sie bitte Ihre erste Zahl ein: &quot;;
     gets(zeichen[0]);
     cout &lt;&lt; &quot;\nGeben Sie bitte Ihre zweite Zahl ein: &quot;;
     gets(zeichen[1]);
int l=strlen(zeichen[0]);                //Länge bestimmt
int k=strlen(zeichen[1]);
memmove(zeichen[0]+20-l,zeichen[0],l);   //Verschieben
memset(zeichen[0],'0',20-l);             //Auffüllen
memmove(zeichen[1]+20-l,zeichen[0],l);   //Verschieben
memset(zeichen[1],'0',20-l);             //Auffüllen
</code></pre>
<p>muss ich ja mit beiden machen da ja auch evtl mal die zweite größer sein kann. aba das funktioniert nich so richtig.<br />
hier mal komplet</p>
<pre><code class="language-cpp">//---------------------------------------------------------------------------

#include &lt;iostream.h&gt;
#include &lt;conio.h&gt;
#include &lt;string.h&gt;
#include &lt;mem.h&gt;
 int x;
 char zeichen[2][21];
 char ergebnis[100];
 void auswahl(void);
 void eingabe(void);
 void add(void);
 void sub(void);
 void mult(void);
 void div(void);
 void kopf(void);

int main()
{

for(x=0;x==0;)
{
        clrscr();
        kopf();
        auswahl();
}

        return 0;
}

//FUNKTIONEN

//Auswahl
void auswahl(void)
{
int i;
cout &lt;&lt; &quot;\n\n1.Addition\n\n2.Subtraktion\n\n3.Multiplikation\n\n4.Division\n\n5.Ausgang&quot;;
cout &lt;&lt; endl &lt;&lt;endl &lt;&lt;&quot;Bitte waehlen Sie die gewuenschte Rechenoperation aus: &quot;;
cin &gt;&gt;i;
switch (i)
{
case 1 :clrscr();
        kopf();
        cout &lt;&lt; &quot;\n\tSie haben sich fuer die Addition entschieden\n\n&quot;;
        eingabe();
        add();
        break;
case 2 :clrscr();
        kopf();
        cout &lt;&lt; &quot;\n\tSie haben sich fuer die Subtraktion entschieden\n\n&quot;;
        eingabe();
        sub();
        break;
case 3 :clrscr();
        kopf();
        cout &lt;&lt; &quot;\n\tSie haben sich fuer die Multiplikation entschieden\n\n&quot;;
        eingabe();
        mult();
        break;
case 4 :clrscr();
        kopf();
        cout &lt;&lt; &quot;\n\tSie haben sich fuer die Division entschieden\n\n&quot;;
        eingabe();
        div();
        break;
case 5 :clrscr();
        kopf();
        cout &lt;&lt; &quot;\n\tVielen dank das Sie unseren Grundlagen-Rechner benutzt haben.&quot;
             &lt;&lt; &quot;\n\n\t\t\tAuf Wiedersehen&quot;;
        getchar();
        x=1;
        break;
default:cout &lt;&lt; &quot;\nunbekannter Befehl&quot;;
        getchar();
}
}

//Eingabe
void eingabe (void)
{
     cout&lt;&lt; &quot;\nGeben Sie bitte Ihre erste Zahl ein: &quot;;
     gets(zeichen[0]);
     cout &lt;&lt; &quot;\nGeben Sie bitte Ihre zweite Zahl ein: &quot;;
     gets(zeichen[1]);
int l=strlen(zeichen[0]);                //Länge bestimmt
int k=strlen(zeichen[1]);
memmove(zeichen[0]+20-l,zeichen[0],l);   //Verschieben
memset(zeichen[0],'0',20-l);             //Auffüllen
memmove(zeichen[1]+20-l,zeichen[0],l);   //Verschieben
memset(zeichen[1],'0',20-l);             //Auffüllen

     return;
}

//addition

 void add(void)                               //additionsfunkton
 {
  int z1;
  int z2;
  int summe;
  int uebertrag=0;
  int p=strlen(zeichen[0]);
  int q=strlen(zeichen[1]);
  p--;
  q--;
    for (int i=19;i&gt;=0;i--)
    {
           if (p&gt;=0)
           {
              z1=zeichen[0][p]-'0';
           }
           else
           {
               z1=0;
           }
           if (q&gt;=0)
           {
               z2=zeichen[1][q]-'0';
           }
           else
           {
              z2=0;
           }

           summe=z1+z2+uebertrag;

           uebertrag=summe/10;
           ergebnis[i]=summe%10+'0';
           p--;
           q--;
    }

             cout &lt;&lt;&quot;\n\nIhr Ergebnis lautet: &quot; &lt;&lt;ergebnis;

  getchar();
 }

 //##############################################################
 //##                Subtraktionsfunktion                      ##
 //##############################################################

 void sub(void)
 {
  int z1;                                     //int aller benötigten Sachen
  int z2;
  int summe;
  int uebertrag=0;
  int i=strlen(zeichen[1]);
//  int l=strlen(zeichen[0]);                //Länge bestimmt
//  memmove(zeichen[0]+20-l,zeichen[0],l);   //Verschieben
//  memset(zeichen[0],'0',20-l);             //Auffüllen

if(zeichen[1][0]=='-')                       //schaut ob im zweiten Array Zeichen ein Minus ist
{
 add();                                      //wenn ja benutze die Additionsfunktion
}

else                                        //falls nicht
 {
 if(strcmp(zeichen[0],zeichen[1])&gt;=1)       //sollte die 1te Zahl größer sein als die 2te
   {
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';          //dient zur berechnung ist eine additionsfunk
             z2=zeichen[1][i]-'0';         //wandelt char in int variablen um

             summe=z1-z2+uebertrag;        //dann Zahl1-Zahl2 in SUmme speichern

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
               cout &lt;&lt;&quot;\n\nIhr Ergebnis lautet: &quot; &lt;&lt; ergebnis;           //ergebnis
   }

 else                                    //wenn2te größer 1st
   {                                     //das funktioniert
     for (i-=1;i&gt;=0;i--)
      {

             z1=zeichen[0][i]-'0';       //Hier das gleiche wie oben
             z2=zeichen[1][i]-'0';

             summe=z2-z1+uebertrag;      //Zahl2-Zahl1

             uebertrag=summe/10;
             ergebnis[i]=summe%10+'0';

      }
          cout &lt;&lt;&quot;\n\nIhr Ergebnis lautet: &quot; &lt;&lt; &quot;-&quot; &lt;&lt; ergebnis;        //ergebnis mit Minus davor
    }
 }
 getchar();
}

 void mult(void)
 {
  eingabe();

 }

 void div(void)
 {
  eingabe();

 }

 void kopf(void)
 {
 int i=79;
 cout &lt;&lt; &quot;\t\t Der Grundlagentaschenrechner&quot;
      &lt;&lt; &quot;\n\t Copyright by xxx&quot;&lt;&lt;endl;

     for(i; i &gt;=0;i--)
            {
              cout&lt;&lt; &quot;_&quot;;
            }

 }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/940989</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940989</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:35:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:46:46 GMT]]></title><description><![CDATA[<p>besser gesagt jetzt funktioniert nichts mehr</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940991</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940991</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:46:46 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 12:51:11 GMT]]></title><description><![CDATA[<p>Für das Verschieben von zahlen[1] mußt du auch dessen Länge (k) nutzen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /> (ansonsten bin ich wie gesagt nicht ganz sicher, ob die Indizes stimmen - jag da mal lieber durch den Debugger und beobachte, was wohin geschoben wird).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/940995</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/940995</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Tue, 13 Dec 2005 12:51:11 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 17:42:53 GMT]]></title><description><![CDATA[<p>mit den richtigen idizes funktioniert's einwandfrei</p>
<pre><code class="language-cpp">int l=strlen(zeichen[0]);                //Länge bestimmt
    int k=strlen(zeichen[1]);
    memmove(zeichen[0]+20-l,zeichen[0],l);   //Verschieben
    memset(zeichen[0],'0',20-l);             //Auffüllen
    memmove(zeichen[1]+20-k,zeichen[1],k);   //Verschieben
    memset(zeichen[1],'0',20-k);             //Auffüllen
</code></pre>
<p>Naj bei neagativen zahlen dürfte es trotzdem noch probleme geben.<br />
Kurt</p>
<p>BTW nach solchen operationen wirkt ein einfaches</p>
<pre><code class="language-cpp">cout &lt;&lt; zeichen[0] &lt;&lt; endl;
</code></pre>
<p>wunder wenn du sehen willst ob du es auch richtig gemacht hast.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/941258</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941258</guid><dc:creator><![CDATA[ZuK]]></dc:creator><pubDate>Tue, 13 Dec 2005 17:42:53 GMT</pubDate></item><item><title><![CDATA[Reply to Hilfe bei einer Funktion on Tue, 13 Dec 2005 18:01:12 GMT]]></title><description><![CDATA[<p>Joa so geht die NORMALE subtraktion mit unterschiedlichen langen zahlen<br />
und des minus geht auch außer du hast vorher die addition mal aufgerufen dann geht sie nicht mehr<br />
und mit - - gehts auch noch nicht.</p>
<p>Trotzdem thx die restlichen probs werd ma shco irgendwie lösen falls doch noch jemand was weiß bitte posted es</p>
]]></description><link>https://www.c-plusplus.net/forum/post/941283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/941283</guid><dc:creator><![CDATA[gruber2k2]]></dc:creator><pubDate>Tue, 13 Dec 2005 18:01:12 GMT</pubDate></item></channel></rss>