我有一個簡單的C程序如何從鍵盤輸入數學表達式?
int main()
{
int n, maxn = 21;
float SN, x;
printf("input x:");
scanf("%f", &x);
printf("input maxn:");
scanf("%d", &maxn);
for(n=0;n<=maxn;n++){
SN = SN + pow(x,n);
n = n + 1;
}
printf("%f", SN);
getch();
return 0;
}
我需要使它多功能,使用戶可以輸入任何表達與來自鍵盤的任何用戶輸入,以取代POW(X,N)。我如何在程序中添加表達式?
有一種工具,它完全符合你的願望。它被稱爲* bc *,並且它是免費軟件http://ftp.gnu.org/gnu/bc/檢查URL並查看源代碼是如何解析數學表達式的。如果你使用Windows,你可能必須使用cygwin來獲得它的預編譯版本。 – Alex
有理論上有可能通過使用動態鏈接庫來完成與'eval'類似的事情。您可以從用戶字符串生成一個簡單的代碼,將其編譯爲動態庫並加載到您的程序中。它聞起來像黑客攻擊,你將需要一個兼容的編譯器在代碼執行的機器上。這個問題被擱置,否則我會發布演示代碼... – Marian