登录
首页 >  Golang >  Go问答

如何添加排除负数

来源:stackoverflow

时间:2024-04-14 21:09:28 169浏览 收藏

IT行业相对于一般传统行业,发展更新速度更快,一旦停止了学习,很快就会被行业所淘汰。所以我们需要踏踏实实的不断学习,精进自己的技术,尤其是初学者。今天golang学习网给大家整理了《如何添加排除负数》,聊聊,我们一起来看看吧!

问题内容


Write a program that queries the user for three positive integers and
displays messages:

All numbers are equal if all three numbers are equal

Two numbers are equal if any two numbers out of three are equal

All numbers are different if all three numbers entered are different


If there is an error in the input data, e.g., negative numbers are
entered, the program should display the message Invalid Input
package main

import (
    "fmt"
)

func main() {
    var a, b, c int
    fmt.Scan(&a)
    fmt.Scan(&b)
    fmt.Scan(&c)
    if (a != b && a > 0) && (b != c && c > 0) && (a != c && b > 0) {
        fmt.Print("All the numbers are different")
    } else if a == b && b == a && a == c && c == b {
        fmt.Print("All numbers are equal")
    } else if (a == b && b > 0) || (b == a && a > 0) || (c == a && a > 0) || (c == b && b > 0) {
        fmt.Print("Two numbers are equal")
    } else {
        fmt.Print("Invalid request")
    }
}

如果我输入例如 -4 -4 -4 如何使程序输出错误的查询?


正确答案


使用一套。在 Go 中实现集合的惯用方法是使用映射。

然后检查集合的长度。

package main

import (
    "fmt"
)

func main() {

    var a int = 5
    var b int = 9
    var c int = 5

    fmt.Scan(&a)
    fmt.Scan(&b)
    fmt.Scan(&c)

    s := map[int]bool{a: true, b: true, c: true}

    if a < 0 || b < 0 || c < 0 {
        fmt.Print("Invalid request")
    } else if len(s) == 3 {
        fmt.Print("All the numbers are different")
    } else if len(s) == 2 {
        fmt.Print("Two numbers are equal")
    } else if len(s) == 1 {
        fmt.Print("All numbers are equal")
    }

}

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>