【图文购物博客源码】【寄存酒源码】【网站ar源码】double程序源码_double 程序

2025-02-07 04:16:22 来源:牛牛房卡游戏源码 分类:百科

1.求c++编译一个简单的程序程序计算程序(四则运算)。

double程序源码_double 程序

求c++编译一个简单的源码计算程序(四则运算)。

       //正解代码很长很复杂,程序程序图文购物博客源码也许对新人来说太难了。源码

       //此程序可以运算+、程序程序寄存酒源码-、源码网站ar源码*、程序程序/、源码乘方(^)、程序程序求余数(%),源码也可以出现( )规定优先级。程序程序

       //按Ctrl+C退出。源码

       #include <stdio.h>

       #include <stdlib.h>

       #include <setjmp.h>

       #include <math.h>

       typedef enum BinOpr

       {

       OP_ADD,程序程序凌海源码出售 OP_SUB, OP_MUL, OP_DIV, OP_MOD, OP_POW, OP_NON

       } BinOpr;

       static struct { int left, right; } binop_prio[] =

       {

       { 6, 6}, { 6, 6}, { 7, 7}, { 7, 7}, { 7, 7}, { ,9},

       };

       #define UNARY_PRIO 8

       static BinOpr get_binop(const char **s)

       {

       switch (**s)

       {

       case '+': ++*s; return OP_ADD;

       case '-': ++*s; return OP_SUB;

       case '*': ++*s; return OP_MUL;

       case '/': ++*s; return OP_DIV;

       case '%': ++*s; return OP_MOD;

       case '^': ++*s; return OP_POW;

       default: return OP_NON;

       }

       }

       static double doexpr(int op, double a, double b)

       {

       switch (op)

       {

       case OP_ADD: return a+b;

       case OP_SUB: return a-b;

       case OP_MUL: return a*b;

       case OP_DIV: return a/b;

       case OP_MOD: return a-floor(a/b)*b;

       case OP_POW: return pow(a, b);

       default: return 0;

       }

       }

       typedef struct ExprContext

       {

       jmp_buf jbuf;

       const char *errmsg, *s;

       BinOpr op;

       } Expr;

       static double error(Expr *e, const char *msg)

       {

       e->errmsg = msg;

       longjmp(e->jbuf, 1);

       }

       static double expr(Expr *e, int limit)

       {

       double n;

       BinOpr op;

       if (*e->s == '-')

       {

       ++e->s;

       n = -expr(e, UNARY_PRIO);

       }

       else if (*e->s == '(')

       {

       ++e->s;

       n = expr(e, 0);

       if (*e->s++ != ')') error(e, "')' expected");

       }

       else {

       const char *s = e->s;

       n = strtod(s, (char**)&e->s);

       if (e->s == s) error(e, "'number' expected");

       }

       op = get_binop(&e->s);

       while (op != OP_NON && binop_prio[op].left > limit)

       {

       n = doexpr(op, n, expr(e, binop_prio[op].right));

       op = e->op;

       }

       e->op = op;

       return n;

       }

       double calc(const char *s, const char **perr)

       {

       Expr e;

       e.s = s;

       e.errmsg = NULL;

       if (setjmp(e.jbuf) == 0)

       {

       double n = expr(&e, 0);

       if (*e.s != '\n' && *e.s != '\0' && *e.s != '=')

       error(&e, "traling chars detected");

       return n;

       }

       if (perr) *perr = e.errmsg;

       return 0;

       }

       int main(void)

       {

       char buff[BUFSIZ];

       while (printf("> "), fgets(buff, BUFSIZ, stdin) != NULL)

       {

       const char *errmsg = NULL;

       double n = calc(buff, &errmsg);

       if (errmsg) printf("ERROR: %s\n", errmsg);

       else printf("%g\n", n);

       }

       return 0;

       }

       //可以把这个程序留下来,等以后再慢慢研究。源码正解太复杂太复杂了。程序程序一一授权源码

       //望采纳

       ------------------------------------------------------------------------------------

更多资讯请点击:百科

推荐资讯

黑龙江牡丹江市:落实食品安全“总监和安全员”制度

中国消费者报哈尔滨讯记者刘传江)11月1日起,黑龙江省牡丹江市将结合食品生产经营企业的规模、风险等级、安全状况等,全面落实配备相适应的食品安全总监或和食品安全员制度。市场监管总局不久前出台的《企业落实

中国公平竞争政策宣传周广东省分会场活动启动

中国消费者报广州讯陈晓莹记者李青山)记者获悉,11月14日,广东省市场监管局在广州与国家市场监管总局同步启动主题为“统一大市场 公平竞未来”首届中国公平竞争政策宣传周活动。活动组织收看了中国公平竞争政

過年必備紅豆年糕「用電鍋4步驟」快速做! 專家公開食譜

過幾天就要過年囉!年節必備紅豆年糕,你準備好了嗎?電鍋版紅豆年糕4步驟跟著做鮮享農YA - 農糧署在粉專上分享電鍋版紅豆年糕製作:1、紅豆浸泡3小時,洗淨放內鍋。內鍋2杯水、外鍋5杯水,跳起燜15分。