byte_head
Captain
- Registriert
- Jan. 2005
- Beiträge
- 3.674
Hi,
ich denke der Fehler in folgendem Programm hat mit den Pointern zu tun, was mich aber verwirrt ist, dass Subtraktion und Division funktionieren.
Bei 1 und 3 dagegen -> Error
Danke schonmal.
ich denke der Fehler in folgendem Programm hat mit den Pointern zu tun, was mich aber verwirrt ist, dass Subtraktion und Division funktionieren.

Code:
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <iostream>
#include <cstdlib>
using namespace std;
void addition(int,int,int*);
void subtraktion(int,int,int*);
void multiplizieren(int,int,int*);
void dividieren(int,int,int*);
int main()
{
cout << "Bitte wählen Sie die gewünschte Operation: \n" << endl;
cout << "1 = Addieren \n2 = Subtrahieren \n3 = Multiplizieren \n4 = Dividieren\n" << endl;
int eingabe;
cin >> eingabe;
if(eingabe < 5 && eingabe != 0)
{
if(eingabe==1)
{
int a,b;
int * erg;
cout << "Bitte geben Sie die 2 zu addierenden Zahlen ein: " << endl;
cin >> a;
cin >> b;
*erg=0;
addition(a,b,erg); // ohne void vor dem Funktionscall!! ohne * !?
cout << a << " + " << b << " = " << *erg << endl;
}
if(eingabe==2)
{
int a,b;
int * erg;
cout << "Bitte geben Sie die 2 zu subtrahierenden Zahlen ein: " << endl;
cin >> a;
cin >> b;
*erg=0;
subtraktion(a,b,erg);
cout << a << " - " << b << " = " << *erg << endl;
}
if(eingabe==3)
{
int a,b;
int * erg;
cout << "Bitte geben Sie die 2 zu multiplizierenden Zahlen ein: " << endl;
cin >> a;
cin >> b;
multiplizieren(a,b,erg);
cout << a << " x " << b << " = " << *erg << endl;
}
if(eingabe==4)
{
int a,b;
int * erg;
cout << "Bitte geben Sie die 2 zu dividierenden Zahlen ein: " << endl;
cin >> a;
cin >> b;
dividieren(a,b,erg);
cout << a << " : " << b << " = " << *erg << endl;
}
}
else { cout << "Error!" << endl; } // Falls der User die Auswahl ignoriert !
return 0;
}
void addition(int z1, int z2, int* erg)
{
*erg=z1+z2;
}
void subtraktion(int z1, int z2, int* erg)
{
*erg=z1-z2;
}
void multiplizieren(int z1, int z2, int* erg)
{
*erg=z1*z2;
}
void dividieren(int z1, int z2, int* erg)
{
*erg=z1/z2;
}
Danke schonmal.
