首頁>Club>
10
回覆列表
  • 1 # Amo晴天657

    四則混合運算程式碼:

    #include<stdio.h>

    #include<ctype.h>

    #include<stdlib.h>

    char token[61]; /*存放表示式字串的陣列*/

    int n=0;

    void error(void) /*報告錯誤函式*/

    {

    printf("ERROR!\n");

    exit(1);

    }

    void match(char expected) /*檢查字元匹配的函式*/

    {

    if(token[n]==expected)

    token[++n]=getchar();

    else error();

    }

    double term(void); /*計算乘除的函式*/

    double factor(void); /*處理括號和數字的函式*/

    double exp(void) /*計算加減的函式*/

    {

    double temp=term();

    while((token[n]=="+")||(token[n]=="-"))

    switch(token[n])

    {

    case"+":match("+");

    temp+=term();

    break;

    case"-":match("-");

    temp-=term();

    break;

    }

    return temp;

    }

    double term(void)

    {

    double div;

    double temp=factor();

    while((token[n]=="*")||(token[n]=="/"))

    switch(token[n])

    {

    case"*":match("*");

    temp*=factor();

    break;

    case"/":match("/");

    div=factor();

    if(div==0) /*處理除數為零的情況*/

    {

    printf("The divisor is zero!\n");

    exit(1);

    }

    temp/=div;

    break;

    }

    return temp;

    }

    double factor(void)

    {

    double temp;

    char number[61];

    int i=0;

    if(token[n]=="(")

    {

    match("(");

    temp=exp();

    match(")");

    }

    else if(isdigit(token[n])||token[n]==".")

    {

    while(isdigit(token[n])||token[n]==".") /*將字串轉換為浮點數*/

    {

    number[i++]=token[n++];

    token[n]=getchar();

    }

    number[i]="\0";

    temp=atof(number);

    }

    else error();

    return temp;

    }

    main()

    {

    double result;

    FILE *data=fopen("61590_4.dat","at");

    if(data==NULL)

    data=fopen("61590_4.dat","wt");

    if(data==NULL)

    return 0;

    token[n]=getchar();

    result=exp();

    if(token[n]=="\n")

    {

    token[n]="\0";

    printf("%s=%g\n",token,result);

    fprintf(data,"%s=%g\n",token,result);

    }

    else error();

    fclose(data);

    return 0;

    getch();

    }

  • 中秋節和大豐收的關聯?
  • 讀了扁鵲三兄弟的故事,你有什麼體會?