L1-005 考試座位号 (15 分) Go語言|Golang
每個 PAT 考生在參加考試時都會被配置設定兩個座位号,一個是試機座位,一個是考試座位。正常情況下,考生在入場時先得到試機座位号碼,入座進入試機狀态後,系統會顯示該考生的考試座位号碼,考試時考生需要換到考試座位就座。但有些考生遲到了,試機已經結束,他們隻能拿着領到的試機座位号碼求助于你,從背景查出他們的考試座位号碼。
輸入格式:
輸入第一行給出一個正整數 N(≤1000),随後 N 行,每行給出一個考生的資訊:準考證号 試機座位号 考試座位号。其中準考證号由 16 位數字組成,座位從 1 到 N 編号。輸入保證每個人的準考證号都不同,并且任何時候都不會把兩個人配置設定到同一個座位上。
考生資訊之後,給出一個正整數 M(≤N),随後一行中給出 M 個待查詢的試機座位号碼,以空格分隔。
輸出格式:
對應每個需要查詢的試機座位号碼,在一行中輸出對應考生的準考證号和考試座位号碼,中間用 1 個空格分隔。
輸入樣例:
4
3310120150912233 2 4
3310120150912119 4 1
3310120150912126 1 3
3310120150912002 3 2
2
3 4
結尾無空行
輸出樣例:
3310120150912002 2
3310120150912119 1
• 1
• 2
思路:
基礎的循環語句。
注意:
- for循環的兩種形式
for index,item := range info{}
for i:=0; i<M; i++{}
因為要存儲的數字太大了,怕數組會存不下,是以用字元串數組存,是以會用到一個類型的轉換來進行下一步的判斷操作。
string轉int
strconv.Itoa(s)//int to string
strconv.Atoi(s)//string to int
代碼如下:
package main
import (
"fmt"
"strconv"
)
func main() {
var F int
var M int
_,_ = fmt.Scan(&F)
var info [1001][3]string
for i:=0;i<F;i++{
_,_ = fmt.Scan(&info[i][0],&info[i][1],&info[i][2])
}
_,_ = fmt.Scan(&M)
for i:=0; i<M; i++{
var s int
_,_=fmt.Scan(&s)
for _,item := range info{
if item[1] == strconv.Itoa(s) {
fmt.Printf("%s %s\n",item[0],item[2])
}
}
}
}