返回顶部

牛客网OJ终端输入输出

牛客网OJ终端输入输出,自己踩过的坑,有的笔试会限制编程语言。

常见输入输出练习场链接:https://ac.nowcoder.com/acm/contest/5657#question

总结

1、输入输出常用的模块如:os,io,bufio,strings,strconv等。
2、有的的oj平台不会给出模块提示,只有在测试提交的才会给出错误信息,如num, _ := sticonv.Atoi(nums[i])字符转整型,同时要返回整型和错误类型(用匿名变量接受)
3、golang不支持while关键字,但是支持num++自加自减操作

一、Q1

描述
计算多组a+b
用例
输入复制
1 5
10 20
输出复制
6
30

代码

package main

import (
    "fmt"
    "io"
)

func main(){
    var a, b int
    for{
        if _, err := fmt.Scan(&a, &b); err != io.EOF{
            fmt.Println(a + b)        
        } else {
            break
        }    
    }
    
}

二、Q2

描述
先输入用例数n,再计算n组a+b
用例
输入
2
1 5
10 20
输出
6
30

代码

package main

import (
    "fmt"
    "io"
)

func main(){
    var num int
    fmt.Scan(&num)
    for ; num > 0; num --{
        var a, b int
        if _, err := fmt.Scan(&a, &b); err != io.EOF{
            fmt.Println(a + b)
        } else {
            break
        }
    }
}

三、Q3

描述
输入包括两个正整数a,b(1 <= a, b <= 10^9),输入数据有多组, 如果输入为0 0则结束输入
用例
输入
1 5
10 20
0 0
输出
6
30

代码

package main

import (
	"fmt"
	"io"
)

func main() {
	for {
		var a, b int
        if _, err := fmt.Scan(&a, &b); err != io.EOF{
            if a == 0 && b == 0{
                break
            }
            fmt.Println(a + b)       
        }
	}
}

四、Q4

描述
输入数据包括多组。
每组数据一行,每行的第一个整数为整数的个数n(1 <= n <= 100), n为0的时候结束输入。接下来n个正整数,即需要求和的每个正整数。
输出:
每组数据输出求和的结果
用例
输入
2
1 5
10 20

输出
6
30

代码

package main

import (
    "fmt"
    "os"
    "strings"
    "bufio"
    "strconv"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    for input.Scan(){
        nums := strings.Split(input.Text(), " ")
        if nums[0] == "0"{
            break
        }
        nums = nums[1:]
        res := 0
        for i:=0; i<len(nums); i++{
            num, _ := strconv.Atoi(nums[i])
            res += num
        }
        fmt.Println(res)
    }
}

五、Q5

描述
输入:
输入的第一行包括一个正整数t(1 <= t <= 100), 表示数据组数。接下来t行, 每行一组数据。每行的第一个整数为整数的个数n(1 <= n <= 100)。接下来n个正整数, 即需要求和的每个正整数。
输出:
每组数据输出求和的结果
用例
输入
2
4 1 2 3 4
5 1 2 3 4 5
输出
10
15

代码

package main

import (
    "fmt"
    "os"
    "bufio"
    "strings"
    "strconv"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    input.Scan()
    t, _ := strconv.Atoi(input.Text())
    for ; t>0; t--{
        input.Scan()
        nums := strings.Split(input.Text(), " ")
        res := 0
        for i:=1; i<len(nums); i++{
            num, _ := strconv.Atoi(nums[i])
            res += num
        }
        fmt.Println(res)
    }
}

六、Q6

描述
输入:
输入数据有多组, 每行表示一组输入数据。每行的第一个整数为整数的个数n(1 <= n <= 100)。接下来n个正整数, 即需要求和的每个正整数。
输出:
每组数据输出求和的结果
用例
输入
4 1 2 3 4
5 1 2 3 4 5
输出
10
15

代码

package main

import (
    "fmt"
    "os"
    "strings"
    "bufio"
    "strconv"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    for input.Scan(){
        nums :=  strings.Split(input.Text(), " ")
        res := 0
        for i:=1; i<len(nums);  i++{
            num, _ := strconv.Atoi(nums[i])
            res += num
        }
        fmt.Println(res)
    }
}

七、Q7

描述
输入:
输入数据有多组, 每行表示一组输入数据。每行不定有n个整数,空格隔开。(1 <= n <= 100)。
输出:
每组数据输出求和的结果

用例
输入
1 2 3
4 5
0 0 0 0 0
输出
6
9
0

代码

package main

import (
    "fmt"
    "os"
    "strconv"
    "strings"
    "bufio"
)


func main(){
    input := bufio.NewScanner(os.Stdin)
    for input.Scan(){
        nums := strings.Split(input.Text(), " ")
        res := 0
        for i:=0; i<len(nums); i++{
            num, _ := strconv.Atoi(nums[i])
            res += num
        }
        fmt.Println(res)
    }
}

八、Q8

描述
输入:
输入有两行,第一行n第二行是n个字符串,字符串之间用空格隔开。
输出:
输出一行排序后的字符串,空格隔开,无结尾空格

用例
输入
5
c d a bb e

输出
a bb c d e

代码

package main

import (
    "fmt"
    "os"
    "bufio"
    "strings"
    "sort"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    input.Scan()
    input.Scan()
    str := strings.Split(input.Text(), " ")
    sort.StringSlice.Sort(str)
    fmt.Println(strings.Join(str, " "))
}

九、Q9

描述
输入:
多个测试用例,每个测试用例一行。每行通过空格隔开,有n个字符,n<100
输出:
对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开

用例
输入
a c bb
f dddd
nowcoder

输出
a bb c
dddd f
nowcoder

代码

package main

import (
    "fmt"
    "strings"
    "bufio"
    "sort"
    "os"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    for input.Scan(){
        str := strings.Split(input.Text(), " ")
        sort.Strings(str)
        fmt.Println(strings.Join(str, " "))
    }
}

十、Q10

描述
输入:
多个测试用例,每个测试用例一行。每行通过,隔开,有n个字符,n<100
输出:
对于每组用例输出一行排序后的字符串,用','隔开,无结尾空格

用例
输入
a,c,bb
f,dddd
nowcoder
输出
a,bb,c
dddd,f
nowcoder

代码

package main

import (
    "fmt"
    "os"
    "bufio"
    "strings"
    "sort"
)

func main(){
    input := bufio.NewScanner(os.Stdin)
    for input.Scan(){
        str := strings.Split(input.Text(), ",")
        sort.Strings(str)
        fmt.Println(strings.Join(str, ","))
    }
}

posted on 2022-04-11 10:47  weilanhanf  阅读(414)  评论(0编辑  收藏  举报

导航