天天看點

【Go語言入門100題】005 考試座位号 (15 分) Go語言|Golang

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      

思路:

基礎的循環語句。

注意:

  1. 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])
    }
  }
    }
}