0
点赞
收藏
分享

微信扫一扫

4.18 go语法实践——operation运算器(打包实现两个float64型数据的加减乘除,多个数据的正在想)

心智的年轮 2022-04-18 阅读 18
golang

operation运算器

1.想要实现的功能

定义一个运算器,能够实现两个或以上的数据的加减乘除预算以及整数求余、整数阶乘以及求绝对值

2.已经完成的效果

1.能实现两个数的加减乘除以及计算一个整数的阶乘

2.operation包

package operation

import (
	"fmt"
	"strconv"
)

func AlgebraOperation(operator string, n1 float64, n2 float64, args ...float64) float64 {
	var sum float64
	if operator == "+" { //实现任意多个浮点型数据加法
		sum = n1 + n2
		for i := 0; i < len(args); i++ {
			sum += args[i]
		}

	} else if operator == "-" { //实现任意多个浮点型数据减法
		sum = n1 - n2
		for i := 0; i < len(args); i++ {
			sum -= args[i]
		}
		sum, _ = strconv.ParseFloat(fmt.Sprintf("%.2f", sum), 64) //精度控制

	} else if operator == "*" { //实现任意多个浮点型数据乘法
		sum = n1 * n2
		for i := 0; i < len(args); i++ {
			sum *= args[i]
		}

	} else if operator == "/" { //实现任意多个浮点型数据除法
		sum = n1 / n2
		for i := 0; i < len(args); i++ {
			sum /= args[i]
		}
	} else {
		fmt.Println("输入的运算符有误") //自动返回float64类型的零值
	}
	return sum
}
func FacOperation(n int) int {
	num := 1
	for i := 1; i <= n; i++ {
		num = num * i
	}
	return num
}

3.主函数

package main

import (
	"GOProject/src/go_project/project_01/project_01_01/operation"
	"fmt"
)

func main() {
	var result float64
	var judge int
	fmt.Println("请选择你是否要打开计算器:")
	fmt.Println("1.表示打开加减乘除计算器\t2.打开阶乘计算\t3.表示退出程序")
	fmt.Scanln(&judge)
	if judge == 1 {
		var num [2]float64
		var operator string
		fmt.Println("请输入两个整数,并输入你想要进行的加减乘除符号")
		fmt.Println("如果你想要更多的数参与运算,你可以把其他的数写在运算符号后面")
		fmt.Println("比如(+,3,6,,7)表示3+6+7")
		fmt.Println("输入运算符")
		fmt.Scan(&operator)
		fmt.Println("输入第一个被操作数")
		fmt.Scan(&num[0])
		fmt.Println("输入第二个被操作数")
		fmt.Scan(&num[1])
		result = operation.AlgebraOperation(operator, num[0], num[1])
		fmt.Println(result)
	} else if judge == 2 {
		var x int
		fmt.Println("输入要求阶乘的数")
		fmt.Scan(&x)
		result2 := operation.FacOperation(x)
		fmt.Println(x, "的阶乘是", result2)
	}
}


3.改进思路

通过链表完成任意个数的数据的加减乘除

举报

相关推荐

0 条评论