回覆列表
  • 1 # 藍風24

    #include<stdio.h> /*庫檔案包含*/

    #include<string.h> /*用於字串操作*/

    #include<stdlib.h> /*用於exit函式*/

    /**************************************************************************

    int check(char *c)

    輸入引數:

    char *c: 輸入的字串

    返回引數:

    0:字串中有不符合規定的字元

    1: 字串字元符合規定,沒有不符合規定的字元.

    功能:

    檢查字串中有否除了 0-9, +,-,*,/,(,),之外的其他字元,

    如果有,則返回0, 表示出現錯誤。

    若沒有,則返回1,表式字串符合規定。

    **************************************************************************/

    int check(char *c)

    {

    int k=0;

    while(*c!="\0")

    {

    if((*c>="0" && *c<="9") || *c=="+" ||

    *c=="-" || *c=="*" || *c=="/" ||

    *c=="." || *c=="(" || *c==")" )

    {

    }

    else

    {

    printf("input error, there have the char not the math expression char!\n");

    return 0;

    }

    if(*c=="(")

    k++;

    else if(*c==")")

    k--;

    c++;

    }

    if(k!=0)

    {

    printf("input error, there is not have correct bracket "()"!\n");

    return 0;

    }

    return 1;

    }

  • 2 # 使用者7415111395883

    只是吐槽,不負法律責任。

    對於四則運算的處理應該屬於 AST演算法 的一個分支,如果不構建詞法分析樹的話,就難以對給定串(不一定是簡單的四則運算)進行優先順序處理。然而居然能夠說出“不用堆疊”之類的話,看樣子樓主是基本不會什麼資料結構了,即使這樣,還奢望能夠寫出四則運算處理。。然而語言略微有些偏激了。簡而言之,處理四則運算,考慮優先順序規則最簡單的方法是堆疊(不考慮優先順序的話從左到右掃一遍也是可以的),如果要複雜的方法也行,只是連堆疊都不想用的人,估計理解不了那些複雜方法。最後一提,如果可以使用資料結構(如棧啊,佇列啊)的話,追問可以得到原始碼,否則請勿回覆,並建議主動關閉問題。

  • 中秋節和大豐收的關聯?
  • 諸子散文和歷史散文是代表了先秦的最高成就?