
float a, b, res
char op[] = "+-*/", *p =op
scanf("%f %f", &a, &b)
while (*p) {
switch(*p) {
case '+': res = a+b break
case '-': res = a+b break
case '*': res = a+b break
case '/': if (b)res = a/b break
}
printf("%f %c %f = %f\n", a, *p, b, res)
p++
}
return 0
}
可以考虑使用$(())进行数学运算例如:
[WtbmWdgz@localhost 桌面]$ a=5b=3
[WtbmWdgz@localhost 桌面]$ echo $((a*7-b))
32
这个可以执行加减乘除和取模(就是取余数)的数学计算还有逻辑运算的与、或、非、还有异或运算
与运算是两个条件同时成立结果才成立。或运算是两个条件有一个成立结果就成立。非运算只需要一个条件。条件成立,结果就是否定。条件不成立 ,结果就肯定。比如:下雨就不出门,不下雨就出门。异或也叫半加。它是 两个条件相同,结果是0,就是否定,两条件不同,结果才是肯定或者是1
原来我�.shellåç计ç®å¨ï¼[root@liuxiting testdir]# cat calculator.sh #!/bin/bashecho "usage: 1+3 <Enter>,q <Enter>is quit"while [ 1 ]doread -p "->>" str 1>>/dev/nulla=`echo $str |awk -F '+|-|*|/' '{print $1}'`if [ $a == q ]thenbreakfib=`echo $str |awk -F '+|-|*|/' '{print $2}'`o=`echo $str |grep -o "[[:punct:]]" | grep -v "\."`case $o in+) awk 'BEGIN{printf " =%.2f\n",'$a'+'$b'}'-) awk 'BEGIN{printf " =%.2f\n",'$a'-'$b'}'\*) awk 'BEGIN{printf " =%.2f\n",'$a'*'$b'}'/)if [ $b -eq 0 ]then echo 0 Can NOT be denominator!continuefi awk 'BEGIN{printf " =%.2f\n",'$a'/'$b'}'#^) awk 'BEGIN{printf " =%.2f\n",'$a'**'$b'}'*) echo erroresacdone åååçååºè¾åºï¼[root@liuxiting testdir]# cat daoXuShuChu.sh #!/bin/bash echo "usage: 123456 <Enter>, q <Enter>is quit"while [ 1 ]doecho -n "Pleasw enter number : " read n if [ $n == 'q' ]then breakfisd=0 rev="" on=$n echo "$n" while [ $n -gt 0 ] do sd=$(( $n % 10 )) # get Remainder n=$(( $n / 10 )) # get next digit rev=$( echo $rev$sd) done echo "$on in a reverse order $rev" done欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)