C語言 機械人OJ題目

2021-10-12 21:34:30 字數 1418 閱讀 6140

問題描述

機械人按照給定的指令在網格中移動,指令有以下四種:

n 向北(上)移動

s 向南(下)移動

e 向東(右)移動

w 向西(左)移動

如下圖所示,在網格1中,機械人初始位於網格第1行第5列,按照網格中的指令,機械人在走出網格前需要10步。在網格2中,機械人初始位於網格第1行第1列,按照網格中的指令,機械人將進入乙個迴圈,永遠走不出網格,且在進入迴圈前走了11步。

假定機械人初始時刻總是在網格第一行的某一列上,請你寫乙個程式確定機械人能否走出網格,並輸出走出網格或進入迴圈需要的步數。

輸入說明

輸入資料第一行為空格分隔的3個整數,分別表示網格行數n、列數m和初始時刻機械人所在的列c(從網格最左邊開始,以1為基準計數)。每個網格的行數和列數均不超過20。接下來是n行指令,指令只包含n,s,e和w四種,所有指令之間沒有空格。

輸出說明

如果機械人可以走出網格,輸出"out "加上走出網格需要的步數;如果機械人進入迴圈不能走出網格,輸出"loop "以及進入迴圈前走的步數。

輸入樣例

3 6 5

neeswe

wwwess

snwwww

輸出樣例

out 10

備註:個人試了很多組資料都沒有問題,但交到oj平台上都得不了滿分。發這篇博文,除了提供乙個思路外,也希望有巨佬能看看**有問題。

#include

intmain()

int b[n]

[m]=

,count=

0,row,col;

//數列b用來標記是否走過這裡。按理來說,{}中應該放個0,但不知道為什麼我的一放就錯

for(row=

0,col=start-1;

;)if(map[row]

[col]

=='n'

) row --

;else

if(map[row]

[col]

=='s'

) row ++

;else

if(map[row]

[col]

=='e'

) col ++

;else col --;if

(row<

0|| row==n || col<

0|| col==m)

//判斷是否走出了地圖

}return0;

}

九度oj 題目1408 吃豆機械人

題目描述 公司內部有許多新鮮的小玩具,例如 智慧型機械人。小時候,大家都玩過那個吃豆子的遊戲吧,這機械人就是按照這個遊戲設計的,它會朝著豆子的方向行走。不過機械人還存在乙個bug,他只會朝南和朝東走。現在有一塊空地,分成了n m個格仔,每個格仔內有一顆豆子。機械人的起點在西北角,終點在東南角。請問機...

兒童機械人程式語言 兒童程式設計機械人

機械人教育指學習機械人的基本知識與基本技能或利用教育機械人優化教育教學效果的理論與實踐。格物斯坦小坦克來講講機械人教育走進中小學,開發機械人教育功能和教育價值,對推進素質教育,培養中小學生的資訊素養和技術素養,提高中小學生的創新和實踐能力,具有重要的現實意義和戰略意義。學生們通過設計 組裝各種機械人...

EPSON機械人 SPEL 語言

乙個spel 程式包括有函式,變數和巨集指令,每乙個程式以.prg的副檔名保持到對應的專案裡 project 乙個專案至少包含有乙個程式和乙個main函式。函式以function開始,fend結束,函式名可以使用最多32個字元的半形英文數字和下劃線,不區分大小寫,但是不可以使用以數字和下劃線開始的名...