「算」 15. 输入输出

本文最后更新于:1 分钟前

牛客网 OJ 在线编程常见输入输出练习

  • Scan 将碰到第一个空格或换行符之前的内容赋值给变量。如果 Scan 中有多个变量,变量值用空格或换行符分割。所以换行和空格是不能存储到变量内的。

  • Scanln 和 Scan 基本相同,唯一区别是当读取多个变量当时候,遇到换行符 Scanln 会直接结束,未读到输入值的变量为零值。

  • Scanf 按照指定格式对输入进行解析。

1 A+B(1)

  • 输入包括两个正整数 a,b,输入数据包括多组
  • 输出 a+b 的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
package main

import (
"fmt"
)

func main() {
var a, b int
for {
n, _ := fmt.Scan(&a, &b) // 返回数据个数和错误
if n == 0 {
break
} else {
fmt.Printf("%d\n", a + b)
}
}
}

2 A+B(2)

  • 输入第一行包括一个数据组数 t;接下来每行包括两个正整数 a,b
  • 输出 a+b 的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
package main

import (
"fmt"
)

func main() {
var a, b, t int
fmt.Scan(&t)
for t > 0 {
fmt.Scan(&a, &b)
fmt.Printf("%d\n", a + b)
t--
}
}

3 A+B(3)

  • 输入包括两个正整数 a,b,输入数据有多组,如果输入为 0 0 则结束输入
  • 输出 a+b 的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
package main

import (
"fmt"
)

func main() {
var a, b int
for {
fmt.Scan(&a, &b)
if a == 0 && b == 0 {
break
}
fmt.Printf("%d\n", a + b)
}
}

4 A+B(4)

  • 输入数据包括多组。每组数据一行,每行的第一个整数为整数的个数 n,n 为 0 的时候结束输入
  • 每组数据输出求和的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
)

func main() {
var n int
for {
fmt.Scan(&n)
var sum, a int
if n == 0 {
break
}
for n > 0 {
fmt.Scan(&a)
sum += a
n--
}
fmt.Printf("%d\n", sum)
}
}

5 A+B(5)

  • 输入的第一行包括一个正整数 t,表示数据组数。接下来 t 行,每行一组数据。每行的第一个整数为整数的个数 n
  • 每组数据输出求和的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package main

import (
"fmt"
)

func main() {
var n, t int
fmt.Scan(&t)
for t > 0 {
fmt.Scan(&n)
var sum, a int
if n == 0 {
break
}
for n > 0 {
fmt.Scan(&a)
sum += a
n--
}
fmt.Printf("%d\n", sum)
t--
}
}

6 A+B(6)

  • 输入数据有多组,每行表示一组输入数据。每行的第一个整数为整数的个数 n,不知道有多少行
  • 每组数据输出求和的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

import (
"fmt"
)

func main() {
var n int
for {
m, _ := fmt.Scan(&n)
if m == 0 {
break
}
var sum, a int
for n > 0 {
fmt.Scan(&a)
sum += a
n--
}
fmt.Printf("%d\n", sum)
}
}

7 A+B(7)

  • 输入数据有多组,每行表示一组输入数据。每行不定有 n 个整数,空格隔开。
  • 每组数据输出求和的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package main

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

func main() {
inputs := bufio.NewScanner(os.Stdin)
for inputs.Scan() { // 每次读入一行
data := strings.Split(inputs.Text(), " ")
var sum int
for i := range data {
val, _ := strconv.Atoi(data[i])
sum += val
}
fmt.Println(sum)
}
}

8 字符串排序(1)

  • 输入有两行,第一行 n;第二行是 n 个字符串,字符串之间用空格隔开
  • 输出一行排序后的字符串,空格隔开,无结尾空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package main

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

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

9 字符串排序(2)

  • 多个测试用例,每个测试用例一行。每行通过空格隔开
  • 对于每组测试用例,输出一行排序过的字符串,每个字符串通过空格隔开
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main

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

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

10 字符串排序(3)

  • 多个测试用例,每个测试用例一行。通过’,’隔开
  • 对于每组用例输出一行排序后的字符串,用’,’隔开,无结尾空格
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
package main

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

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

「算」 15. 输入输出
https://qanlyma.github.io/Algorithm-io/
作者
Qanly
发布于
2023年8月7日