LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1283|回复: 17

我的意思是把( )等当成一个值后,串在一块后再解译再处理...怎么操作呢?

[复制链接]
发表于 2005-3-18 10:31:14 | 显示全部楼层 |阅读模式
# (3/2-1+5)*4=22

a0=(
a1=3
a2=/
a3=2
a4=-
a5=1
a6=+
a7=5
a8=)
a9=*
a10=4

bb=$(($a0$a1$a2$a3$a4$a5$a6$a7$a8$a9$a10)

echo $(($a0$a1$a2$a3$a4$a5$a6$a7$a8$a9$a10)

echo $bb
为什么不等于22呢???

请问要具体要怎样写呢?
我的意思是把+-*/()当成一个值后,串在一块后再解译為相处理...

谢谢
发表于 2005-3-18 11:00:57 | 显示全部楼层
没懂你的意思. d是不是统计字符个数?????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-18 11:34:34 | 显示全部楼层
把运算符作为变量的值后再运行.........
回复 支持 反对

使用道具 举报

发表于 2005-3-18 11:54:21 | 显示全部楼层
编译器无法辨认acb序列吧。还得手工翻译
回复 支持 反对

使用道具 举报

发表于 2005-3-18 12:08:51 | 显示全部楼层
呵呵~
#!/usr/bin/perl

$a=1;$b=2;$c='+'; print $d=eval $a.$c.$b;

#$c 可以为+,-,*,/
回复 支持 反对

使用道具 举报

发表于 2005-3-18 12:10:14 | 显示全部楼层
杀鸡焉用牛刀~!   :comp
回复 支持 反对

使用道具 举报

发表于 2005-3-18 12:10:48 | 显示全部楼层
(a=1;b=2;c=+;d=$a$c$b;echo $d|bc)
回复 支持 反对

使用道具 举报

发表于 2005-3-18 13:47:58 | 显示全部楼层
d=$((${a}${c}$b))
这样也可以!
回复 支持 反对

使用道具 举报

发表于 2005-3-18 13:49:39 | 显示全部楼层
  1. zhyfly: ~$ d=$a=1;b=2;c=+;d=$((${a}${c}$b));echo $d;
  2. 3
  3. zhyfly: ~$
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-18 13:55:32 | 显示全部楼层

谢谢各位了

其实我在写一个
1 2 3 4 5 + - * /
还有( )等都只能用一次如何算出值为22

大概是把+ - * / ( ) 这些都给变量后
用for去算,不知大家有没有更好的方法呢//
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表