簡體   English   中英

如何要求用戶用C語言輸入數學函數?

[英]How to ask the user to input a mathematical function in c language?

我正在做一個大學項目,其中我必須創建一個數值積分計算器。 我需要用戶輸入被積函數來替換下面的double f(double x)函數,以便我的程序可以用於具有無窮大限制的任何一維積分。

這是代碼:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

double f(double x)
{
    return x;
}

double traprule(double a, double b, double N)
{
    double h, sum, fn, fa, fb, I;

    sum = 0;
    h = (b - a) / N;

    for (int n = 1; n < N; n++)
    {
        fn = f(a + n * h);
        sum = sum + fn;
    }

    fa = f(a);
    fb = f(b);
    I = 0.5 * h * ((fa + fb) + 2 * sum);
    return I;
}

int main()
{
    scanf("%s", &f)
    double result;
    result = traprule(0, 10, 10);
    printf("%lg", result);
    return 0;
}

C標准庫不包含任何內容,可讓您直接解析任意數學表達式。 這種表達式解析器/評估器的實現遠遠超出了Stack Overflow答案的范圍,但是如果允許您使用外部庫(即,該問題與您的項目無關),則可以使用開源選項,如TinyExpr 您應該能夠將用戶的輸入讀入一個字符串(例如使用fgets )並將其傳遞給庫。

(如果不允許使用庫,請閱讀解析器並研究鏈接的github頁面上的圖和源代碼,然后問一個更具體的問題,如果遇到問題。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM