So versuche ich, ein Programm zu machen, das mathematische Operationen basierend auf Benutzereingaben ausführt, aber ich stoße auf ein Problem mit dem Versuch, den mathematischen Operator basierend auf dem zu setzen, was sie geben.Verwenden einer Funktion anstelle eines Operators
Funktion:
const operator(int val)
{
if (val == 1)
{
return +;
}
if (val == 2)
{
return -;
}
}
Mit einem Haupt-Code sucht so etwas wie dies
scanf("%d", val)
output = 4 operator(val) 2
printf("%d", output)
Gibt es eine variable Art, die ich anstelle einem Betreiber verwenden kann? Wenn nicht, gibt es eine Möglichkeit, eine Variable/Funktion auf ein definiertes Makro zu verweisen?
Zum Beispiel:
#define plus +
dann das Makro im Code verweisen?
Schließlich bin mir bewusst, dass ich haben könnte, wenn Fälle für jeden Eingang, aber das ist wie schlecht für etwas skaliert,
output = 2 operator(val) 5 operator(val) 7 operator(val) 3
die 64 erfordern würde, wenn Aussagen Ich denke, es funktioniert.
Vielen Dank für das Lesen, ich bin am Ende meiner Weisheit.
Sie können nicht in C. '#define Plus +' nicht tun diese Art von Unsinn, es macht Ihr Programm schwer zu lesen. –
@MichaelWalz Können Sie näher darauf eingehen? Gibt es eine Möglichkeit, die mathematischen Funktionen ohne große Mengen von if-Anweisungen auszuführen? – Warior4356
Sie könnten eine Zeichenfolge nehmen und analysieren, um den Operator zwischen den Operanden zu finden. – George