1、用fmt包读取已知数量的
/*
输入:
1 5
10 20
输出:
6
30
*/
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
1 5
10 20
输出:
6
30
*/
package main
import "fmt"
func main(){
var t int//第一行数是个数
fmt.Scan(&t)
for i:=0;i<t;i++ {//循环t次
var a,b int
fmt.Scan(&a,&b)
fmt.Println(a+b)
}
/*有结束标志
输入:
1 5
10 20
0 0
输出:
6
30
*/
func main(){
var a,b int
for{
fmt.Scan(&a,&b)
if a==0 && b==0{//如果扫描到(0,0)就结束
break
}else{
fmt.Println(a+b)
}
}
}
/*有结束标志,知道每行个数,每行变成数组
输入:
4 1 2 3 4
5 1 2 3 4 5
0
输出:
10
15
*/
//在读取 n 后初始化 arr 数组,然后读取 n 个数字,计算它们的和,并输出结果。当输入 n 为 0 时,程序会退出循环。
package main
import "fmt"
func main(){
var n int
for{//for里的操作就是读一行
fmt.Scan(&n)
if n==0{//循环到第一个数为0就停止
break
}
/*对比
t,_:=fmt.Scan(&n)
if t==0{//循环到扫描不到数据停止
break
}
*/
arr := make([]int,n)
for j:=0;j<n;j++{
fmt.Scan(&arr[j])
}
fmt.Println(ArraySum(arr))
}
}
func ArraySum(nums []int)int{
var sum int
for i:=0;i<len(nums);i++{
sum +=nums [i]
}
return sum
}
/*固定行数,知道每行个数,每行变成数组
输入:
2
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15
*/
package main
import "fmt"
func main(){
var t int
fmt.Scan(&t)
for i:=0;i<t;i++{
var n int
fmt.Scan(&n)
arr := make([]int ,n)
for j:=0;j<n;j++{
fmt.Scan(&arr[j])
}
fmt.Println(ArraySum(arr))
}
}
func ArraySum(nums []int)int{
sum := 0
for _,num := range nums{
sum +=num
}
return sum
}
/*不知道行数,知道每行个数,每行变成数组
输入:
4 1 2 3 4
5 1 2 3 4 5
输出:
10
15
*/
package main
import "fmt"
func main(){
var n int
for{//for里的操作就是读一行
t,_:=fmt.Scan(&n)
if t==0{//循环到扫描不到数据停止
break
}
arr := make([]int,n)
for j:=0;j<n;j++{
fmt.Scan(&arr[j])
}
fmt.Println(ArraySum(arr))
}
}
func ArraySum(nums []int)int{
var sum int
for i:=0;i<len(nums);i++{
sum +=nums [i]
}
return sum
}
用bufio读取一整行
/*整行读取
输入:
1 2 3
4 5
0 0 0 0 0
输出:
6
9
0
*/
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
inputs := bufio.NewScanner(os.Stdin)//inputs是个扫描器
for inputs.Scan() { //每次读入一行
//str := inputs.Text() //将读入的行存入字符串
data := strings.Split(inputs.Text(), " ") //通过空格将他们分割,并存入一个字符串切片
var arr []int
for i := range data {
val, _ := strconv.Atoi(data[i]) //将字符串转换为int
arr=append(arr,val)//最终存放在数组中
}
fmt.Println(ArraySum(arr))
}
}
func ArraySum(nums []int)int{
var sum int
for i:=0;i<len(nums);i++{
sum +=nums [i]
}
return sum
}
字符串操作
/*知道每行个数
输入:
5
c d a bb e
输出:
a bb c d e
*/
package main
import(
"fmt"
"sort"
"strings"
)
func main(){
var n int
fmt.Scan(&n)//读第一行数
str := make([]string,n)
for i:=0;i<n;i++{//读第二行,将第二行的字符放进字符串切片中
fmt.Scan(&str[i])
}
sort.Strings(str)
fmt.Println(strings.Join(str," ")) //将切片连接成字符串
}
/*不知道每行个数,需整行输入用bufio包
输入:
a c bb
f dddd
nowcoder
输出:
a bb c
dddd f
nowcoder
*/
package main
import(
"fmt"
"sort"
"strings"
"bufio"
"os"
)
func main(){
inputs := bufio.NewScanner(os.Stdin)//inputs是个扫描器
for inputs.Scan() { //每次读入一行
data := strings.Split(inputs.Text(), " ") //通过空格将他们分割,并存入一个字符串切片
sort.Strings(data)
fmt.Println(strings.Join(data," ")) //将切片连接成字符串
}
}
/*用逗号隔开
输入:
a,c,bb
f,dddd
nowcoder
输出:
a,bb,c
dddd,f
nowcoder
*/
func main(){
inputs := bufio.NewScanner(os.Stdin)//inputs是个扫描器
for inputs.Scan() { //每次读入一行
data := strings.Split(inputs.Text(), ",") //通过空格将他们分割,并存入一个字符串切片
sort.Strings(data)
fmt.Println(strings.Join(data,",")) //将切片连接成字符串
}
}