我实际上有点麻烦...
我有一个计算器,但是当我想将小数除以它们时,我会惊慌失措地说不能除以0。
好吧,我知道在数学中我们不能除以0,但我不会在整数中放入0。
有什么问题的想法吗?
这是代码:
package main
import (
"fmt"
"os"
"strconv"
)
func mult(nums ...int) {
result := 0
total := 1
for _, num := range nums {
result = total * num
total = result
}
fmt.Println(result)
}
func add(nums ...int){
result := 0
total := 0
for _, num := range nums {
result = total + num
total = result
}
fmt.Println(result)
}
func sub(nums ...int){
result := 0
total := 0
for _, num := range nums {
result = num - total
total = result
}
fmt.Println(result)
}
func div(nums ...int){
result := 1
total := 1
for _, num := range nums {
result = num / total
total = result
}
fmt.Println(result)
}
func main() {
var d [] int
var args= os.Args[1:]
nums := make([]int, len(args))
for i := 0; i < len(args); i++ {
nums[i], _ = strconv.Atoi(args[i]);
strconv.Atoi(args[i])
d = append(d, nums[i])
}
num := d
if os.Args[1] == "*"{
mult(num...)
} else if os.Args[1] == "+"{
add(num...)
} else if os.Args[1] == "-"{
sub(num...)
} else if os.Args[1] == "/"{
div(num...)
} else {
fmt.Println("Well well well, you didn't entered a right operand ! Try with +, -, /, or * between double quotes")
}
}
我要运行此go代码的命令是:
go run calc.exe / 3 2 [Infinite args,...]
最佳答案
如果您的第一个参数始终是运算符选择,则可以在主函数中执行类似的操作,在主函数中有两个问题,您将忽略字符串到int的转换错误,然后将数组的索引设置为设置为0,并且您定义的数组大于所需数组,因为第一个参数不是div函数的数字
nums := make([]int, len(args)-1)
for i := 0; i < len(args); i++ {
ret, errAtoi := strconv.Atoi(args[i])
if errAtoi != nil {
fmt.Println(errAtoi.Error())
} else {
nums[i-1] = ret
d = append(d, nums[i-1])
}
}
关于go - Golang计算器-无法除以0错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48220023/