Ask coding questions

← Back to all posts
Warum funktioniert dieser in C++ geschriebener Rechner nicht?
FallingNever (0)

Folgendes Problem. Ich habe einen Taschenrechner programmiert, diesen habe ich darauf konzipiert, dass es sowohl integer als auch floats berechnen kann. Jedoch wenn es zu dem Punkt kommt wo floats beim input eine Rolle spielen, funktioniert der Rechner nicht mehr. Bei integern ist alles Problemlos. Hier der Code. Danke für alle Antworten!

#include <iostream>
using namespace std;

void addition(int var1addition = 1, int var2additon = 1){
cout << var1addition + var2additon << endl;
}
void addition(float var1additionf = 1.0, float var2additonf = 1.0){
cout << var1additionf + var2additonf << endl;
}

void subraction(int var1subraction = 1, int var2subraction = 1){
cout << var1subraction - var2subraction << endl;
}
void subraction(float var1subractionf = 1.0, float var2subractionf = 1.0){
cout << var1subractionf - var2subractionf << endl;
}

void multiplication(int var1multi = 1, int var2multi = 1){
cout << var1multi var2multi << endl;
}
void multiplication(float var1multif = 1.0, float var2multif = 1.0){
cout << var1multif
var2multif << endl;
}

void division(double var1divisionf = 1.0, double var2divisionf = 1.0){
if(var2divisionf == 0.0 || var2divisionf == 0){
cout << "You can divide by 0\n";
}
cout << var1divisionf / var2divisionf << endl;
}

int main (){
int entscheidung, entscheidungaddition, entscheidungsubraktion, entscheidungmultiplikation, entscheidungdivision;
cout << "Hey, willst du addieren (1), subtrahieren (2), multiplizieren (3), oder dividieren (4)" << endl;
cin >> entscheidung;
if (entscheidung == 1){
cout << "Willst du eine Ganzzahl (1) oder eine Kommazahl (2) addieren?" << endl;
cin >> entscheidungaddition;
if (entscheidungaddition==1){
cout << "Bitte gib zwei Zahlen ein, die du Addieren willst!\n";
int entscheidungadditionvar1, entscheidungadditionvar2;
cin >> entscheidungadditionvar1 >> entscheidungadditionvar2;
addition(entscheidungadditionvar1, entscheidungadditionvar2);
}
else{
cout << "Bitte gib zwei Zahlen ein, Kommazahlen, die du Addieren willst!\n";
int entscheidungadditionvar1f, entscheidungadditionvar2f;
cin >> entscheidungadditionvar1f >> entscheidungadditionvar2f;
addition(entscheidungadditionvar1f, entscheidungadditionvar2f);
}
}
if (entscheidung == 2){
cout << "Willst du eine Ganzzahl (1) oder eine Kommazahl (2) subtrahieren?" << endl;
cin >> entscheidungsubraktion;
if (entscheidungsubraktion == 1){
cout << "Bitte gib zwei Zahlen ein, die du Subtrahieren willst!\n";
int entscheidungsubtraktionvar1, entscheidungsubtraktionvar2;
cin >> entscheidungsubtraktionvar1 >> entscheidungsubtraktionvar2;
subraction(entscheidungsubtraktionvar1, entscheidungsubtraktionvar2);
}
else{
cout << "Bitte gib zwei Zahlen ein, Kommazahlen, die du Subtrahieren willst!\n";
int entscheidungsubtraktionvar1f, entscheidungsubtraktionvar2f;
subraction(entscheidungsubtraktionvar1f, entscheidungsubtraktionvar2f);
}
}
if (entscheidung == 3){
cout << "Willst du eine Ganzzahl (1) oder eine Kommazahl (2) multiplizieren?" << endl;
cin >> entscheidungmultiplikation;
if(entscheidungmultiplikation == 1){
cout << "Bitte gib zwei Zahlen ein, die du Multiplizieren willst!\n";
int entscheidungmultiplikationvar1, entscheidungmultiplikationvar2;
cin >> entscheidungmultiplikationvar1 >> entscheidungmultiplikationvar2;
multiplication(entscheidungmultiplikationvar1, entscheidungmultiplikationvar2);
}
else{
cout << "Bitte gib zwei Zahlen ein, Kommazahlen, die du Multiplizieren willst!\n";
int entscheidungmultiplikationvar1f, entscheidungmultiplikationvar2f;
cin >> entscheidungmultiplikationvar1f >> entscheidungmultiplikationvar2f;
multiplication(entscheidungmultiplikationvar1f, entscheidungmultiplikationvar2f);
}
}
if (entscheidung == 4){
cout << "Bitte gib zwei Zahlen ein, die du Dividieren willst. Die erste Zahl die du eingeben wirst, wird der Zähler sein, welcher Null sein darf. Denke dran, dass die zweite Zahl die du eingeben wirst, der Nenner sein wird, welcher nicht null sein darf!\n";
int entscheidungdivisionvar1, entscheidungdivisionvar2;
division(entscheidungdivisionvar1, entscheidungdivisionvar2);
}
return 0;
}