设为首页 加入收藏

TOP

逆波兰表达式 - 中缀表达式转后缀表达式(三)
2019-08-13 05:39:32 】 浏览:222
Tags:波兰 表达式 后缀
sp;       CalculateAndPush(num, &i, &j, ss[i]);    /* 计算结果并入栈 */
        }
        else if (ss[i] == '\n')    /* 如果是换行符,结束循环*/
        {
            break;
        }
    }


 


    printf("%lf", num[0]);


 


    return 0;
}


 


/* Function: 计算结果并入栈 */
void CalculateAndPush(double *num, int *i, int *j, char mm)
{
    switch (mm)
    {
    case '+':
        {
            num[(*j)-2] = num[(*j)-1] + num[(*j)-2];
            (*j)--;
            (*i)++;
            break;
        }
    case '-':
        {
            num[(*j)-2] = num[(*j)-1] - num[(*j)-2];
            (*j)--;
            (*i)++;
            break;
        }
    case '*':
        {
            num[(*j)-2] = num[(*j)-1] * num[(*j)-2];
            (*j)--;
            (*i)++;
            break;
        }
    case '/':
        {
            num[(*j)-2] = num[(*j)-1] / num[(*j)-2];
            (*j)--;
            (*i)++;
            break;
        }
    default:
        {
            exit(0);
        }
    }
}
/* Function: 判断文件打开是否成功 */
void JudgeFopen_s(errno_t err)
{
    if (err != 0)
    {
        printf("文件打开失败\n");
        system("pause");
        exit(0);
    }
}


 


/* Function: 读取文件内容*/
void ReadFile(FILE *fp, char *ss)
{
    int i = 0;


 


    while (!feof(fp))
    {
        fscanf_s(fp, "%c", &ss[i]);
        i++;
    }
    ss[i-1] = '\0';
}


 


/* Function: 将char类型数组的每一个元素转换为double */
double TransformCtoD(char ch)
{
    return (double)(ch - '0');
}


首页 上一页 1 2 3 4 5 6 7 下一页 尾页 3/8/8
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Java集合 LinkedList的原理及使用 下一篇C语言编码方式之ASCII、ANSI、Uni..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目