Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Habe probleme mit meinem programm

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.01.2007, 23:14 Uhr
eagle



hallo

kann mir bitte einer helfen. Bin noch ein anfänger

aus langerweile oder anders gesagt um die materie besser zu verstehen habe ich ein programm geschrieben was aber nicht richtig funktioniert.

Kleine beschreibung.
Rechnen:
es sollen 2 Werte eingelesen und mit einanden +, -, *, / werden.
Die eingabe funktioniert aber die ausgabe ist falsch. Den der compiler gibt zufällige Zahlen aus. D.h von der Funktion Zahleneingabe werden die adressen nicht an die funktion zum ausrechnen übergeben. WARUM?

Schreiben:
Es sollen 2 Sätze eingegeben und mit einander verglichen werden.
Aber es funktioniert nicht ganz so wie ich es will.
Ich kann nicht den ersten Satz eingeben der wird irgendwie übersprungen es kommt die zweite eingabe.


C++:
#include <iostream.h>
#include <string.h>

//Eingabe von Zeichen
void Zeichen (char a[30], char b[30])
    {
    cout << "Dein erster Satz" <<endl;
    cin.getline(a,30);
    cout << "Dein zweiter Satz" <<endl;
    cin.getline(b,30);
    cout << '\n';
    }

//Ermittlung der Zeichen in Zeichen
void laenge (char a[30], char b[30])
    {
    cout << "Die laenge des ersten Satzes ist   : ";
    cout << strlen(a) <<endl;
    cout << "Die laenge des zweiten Satzes ist  : ";
    cout << strlen(b) <<endl;

    }
//vergleichen von Seingabe
void vergleich(char a[30], char b[30])
    {
    int rechnen;
    if (strlen(a)== strlen(b))
        {
        cout << "Die laenge ist gleich" <<endl;
        if (strcmp(a,b))
            cout << "aber die Zeichenfolge ist unterschiedlich";
        else
            cout << "und die Zeichen sind auch gelich";
        }
    else if (strlen(a)<strlen(b))
            {
            cout << "Die laenge ist unterschiedlich" <<endl;
            rechnen = strlen(b) - strlen(a);
            cout << "a ist: " << rechnen << " Zeichen kuerzer" <<endl;
            }
         else if (strlen(a)>strlen(b))
                {
                cout << "Die laenge ist unterschiedlich" <<endl;
                rechnen = strlen(a) - strlen(b);
                cout << "a ist: " << rechnen << "Zeichen laenger" <<endl;
                }



     }

//Eingabe von Zahlen
void Zahlen (float f, float g)
    {
    cout << "Deine erste Zahl   : ";
    cin >> f;
    cout << "Deine zweite Zahl  : ";
    cin >> g;
    cout << '\n';
    }

float mal(float a, float b)
        {
        return (a*b);
        }
float durch(float c, float d)
        {
        return (c/d);
        }
float Plus(float e, float f)
        {
        return (e+f);
        }
float Minus(float g, float h)
        {
        return (g-h);
        }
void alles (float r, float t)
      {
      cout << Minus (r, t)<<endl;
      cout << Plus (r, t)<<endl;
      cout << mal(r, t) <<endl;
      cout << durch(r, t);
       }

void main()
{
char zeichen, zeichenschreiben;
char a[30],s[30];
float f,g;

cout << "1 fuer rechnen" <<endl;
cout << "2 fuer schreiben" <<endl;
cout << "deine eingbe ";
cin >> zeichen;
cout << '\n';
switch(zeichen)
   {
   case '1':
        Zahlen(f,g);
        alles(f,g);
        break;

   case '2':
        cout << "l laenge der Zeichen ausgeben" <<endl;
        cout << "a alles ausgeben 'laenge und Zeichen'" <<endl;
        cin >> zeichenschreiben;

        switch (zeichenschreiben)
            {
            case 'l':
                Zeichen(a,s);
                laenge (a,s);
                break;
            case 'a':
                Zeichen(a,s);
                vergleich(a,s);
                break;
            default:
                cout << "kenn ich net" <<endl;
            }
   default:
        cout << "kenn ich net" <<endl;

    }



char p[50];
cin.getline(p,50);
cin.getline(p,50);
}


 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
23.01.2007, 16:44 Uhr
Tommix



Hallo,
Du übergibst die Zahlen f, g per Kopie, d.h. die eingegebenen Werte werden nicht zurückgegeben. Richtig wäre

C++:
//Eingabe von Zahlen
void Zahlen (float& f, float& g)
{
    cout << "Deine erste Zahl   : ";
    cin >> f;
    cout << "Deine zweite Zahl  : ";
    cin >> g;
    cout << '\n';
}



Gruß, Tommix
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
23.01.2007, 21:52 Uhr
eagle



danke

es hat bei mir jetzt funktioniert

das habe ich mir auch so gedacht, nur ich wusste nicht wie es richteg gemacht wird.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: