永发信息网

(7+6*4-12)/9怎么计算,采用C语言,如何制作程序?

答案:2  悬赏:10  手机版
解决时间 2021-02-28 01:29
(7+6*4-12)/9怎么计算,采用C语言,如何制作程序?
最佳答案
#include 
int main(void){
    printf("%d
",(7+6*4-12)/9);//整数的话
    printf("%f
",(7+6*4-12)/9.0);//实数的话
    return 0;
}
全部回答
typedef struct {
double v[100];
int    op[100];
int    n;
int    pri;
char   *s;
}Cur;
#define is_d(c) (c >= '0' && c <= '9')
void get_v(Cur* c) {
double v = 0;
double p = 1;
char*  s = c->s;
while (*s) {
if      (*s == '(') c->pri += 0x100;
else if (*s == ')') c->pri -= 0x100;
else if (is_d(*s)) {
if (p < 1) {
v += p * (*s -'0');
p *= 0.1;
}
else {
v = v*10 + (*s -'0');
}
}
else if (*s == '.') {
p = 0.1;
}
else break;
s++;
}
c->s = s;
c->v[c->n++] = v;
}
#define OP(m)  (m & 0xF)
#define PRI(m) (m & (~0xF))
char op_c(int op) {
char a[] = " +-*/^   "; return a[OP(op)];
}
int get_o(Cur* c) {
while (*(c->s)) {
switch (*(c->s++)) {
case '+': return  c->pri | 0x11;
    case '-': return  c->pri | 0x12; 
case '*': return  c->pri | 0x23; 
case '/': return  c->pri | 0x24;
case '^': return  c->pri | 0x45;
}
}
return 0;
}
void _calc(Cur* c, int pri) {
while (c->n > 1) {
c->n--;
//printf("calc: %lf %c %lf ", c->v[c->n-1], op_c(c->op[c->n]), c->v[c->n]);
switch(OP(c->op[c->n])) {
case 1: c->v[c->n-1] = c->v[c->n-1] + c->v[c->n]; break;
case 2: c->v[c->n-1] = c->v[c->n-1] - c->v[c->n]; break;
case 3: c->v[c->n-1] = c->v[c->n-1] * c->v[c->n]; break;
case 4: c->v[c->n-1] = c->v[c->n-1] / c->v[c->n]; break;
case 5: c->v[c->n-1] = pow(c->v[c->n-1], c->v[c->n]); break;
}
if (c->n > 1) {
if (PRI(c->op[c->n-1]) < pri) break;
}
    }
}
double calc(char* s) {
Cur c;
int p1 = 0, p2;
c.pri = 0;
c.n   = 0;
c.s   = s;
get_v(&c);
while (*c.s) {
p2 = get_o(&c);
if (PRI(p1) >= PRI(p2)) {
_calc(&c, PRI(p2));
}
c.op[c.n] = p2;
p1 = p2;
get_v(&c);
}
_calc(&c, 0);
return c.v[0];
}
#define TEST(str) printf(#str " = %lf ", calc(str))
int main() {
TEST("123.5789");
TEST("1+1");
TEST("2+1.25*(5+1)^2");
TEST("(7+6*4-12)/9");
TEST("12*(1+2*(3+(5+6)*7-4)+12-5*7+9)");
return 0;
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
最近将支付宝绑定手机换了,然后支付宝账号变
我家的笔记本重装系统、问题没得USB的驱动、
精华教育在哪里啊,我有事要去这个地方
奥客隆太阳能地址在哪,我要去那里办事
梦见自己推一木车柴
魅族3如何装载usb存储器?相册看不了怎么办?
先天性行为是指生来遗传物质就有的,由动物体
汽车后视镜怎么才能牢固的粘上扩视镜了
蒋介石胸前挂的是什么勋章?
开袋即食干虾能烹饪吗怎么做好吃?谢谢
大姨妈刚完一个星期左右 小腹为什么还是会疼
通辽市从地王花园到平安西区坐几路公交车
离中考最后几天,作为初三班主任,怎么管理班
图个轻松怎么做皮卡剧
搜集和整理历史资料,从资料中提取有效信息是
推荐资讯
顶角线用什么固定
世纪华联超市刘庄店在什么地方啊,我要过去处
强鑫文化用品在什么地方啊,我要过去处理事情
我有个游戏冲了1000块钱可是我玩了半年不想玩
公民是否有义务协助带有危险性的公安机关调查
S309在什么地方啊,我要过去处理事情
为什么?为什么我的iphone5s只有100mb的系统内
泗井巷在哪儿?
减肥符,瘦身符在哪里请,真的有效吗
奔驰斯玛特停车是什么档
我男朋友告诉我,他以后亏待不了我,还有忘不
灵栖洞学生证能优惠吗 冬天去好玩吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?