華為OJ(座標移動)

2021-07-24 17:40:55 字數 1392 閱讀 7187

描述開發乙個座標計算工具, a表示向左移動,d表示向右移動,w表示向上移動,s表示向下移動。從(0,0)點開始移動,從輸入字串裡面讀取一些座標,並將最終輸入結果輸出到輸出檔案裡面。

輸入:合法座標為a(或者d或者w或者s) + 數字(兩位以內)

座標之間以;分隔。

非法座標點需要進行丟棄。如aa10;  a1a;  $%$;  yad; 等。

下面是乙個簡單的例子 如:

a10;s20;w10;d30;x;a1a;b10a11;;a10;

處理過程:

起點(0,0)

+   a10   =  (-10,0)

+   s20   =  (-10,-20)

+   w10  =  (-10,-10)

+   d30  =  (20,-10)

+   x    =  無效

+   a1a   =  無效

+   b10a11   =  無效

+  乙個空 不影響

+   a10  =  (10,-10)

結果 (10, -10)

知識點字串

執行時間限制

0m記憶體限制0輸入

一行字串

輸出最終座標,以,分隔

樣例輸入

a10;s20;w10;d30;x;a1a;b10a11;;a10;

樣例輸出10,-10

我用的笨方法沒用c++的字串庫。而且第一次還把ch字元陣列開太小了,一直無法ac。並且題中說明座標值是兩位數以內的。

#include

#include

using namespace std;

int isright(char *p,int k)  //判斷提取的座標是否合法,不合法返回0,合法返回座標值

else if(k==2)

else

return 0;

}else

return 0;

}else if(k==3)

else

return 0;

if(p[2]>='0'&&p[2]<='9')

else

return 0;

}else

return 0;

}else

}void fuzhi(char *p,int &a,int &b,int k) //對座標進行處理

switch(p[0])

}int main()

{int x=0,y=0,k=0;

char s[100];

char ch[100];

//memset(s,0,strlen(s));

memset(ch,0,strlen(ch));

cin>>s;

for(unsigned int i=0;i

華為OJ(座標移動)

描述 開發乙個座標計算工具,a表示向左移動,d表示向右移動,w表示向上移動,s表示向下移動。從 0,0 點開始移動,從輸入字串裡面讀取一些座標,並將最終輸入結果輸出到輸出檔案裡面。輸入 合法座標為a 或者d或者w或者s 數字 兩位以內 座標之間以 分隔。非法座標點需要進行丟棄。如aa10 a1a y...

華為oj中級 座標移動

描述 開發乙個座標計算工具,a表示向左移動,d表示向右移動,w表示向上移動,s表示向下移動。從 0,0 點開始移動,從輸入字串裡面讀取一些座標,並將最終輸入結果輸出到輸出檔案裡面。輸入 合法座標為a 或者d或者w或者s 數字 兩位以內 座標之間以 分隔。非法座標點需要進行丟棄。如aa10 a1a y...

華為OJ中級題 座標移動

開發乙個座標計算工具,a表示向左移動,d表示向右移動,w表示向上移動,s表示向下移動。從 0,0 點開始移動,從輸入字串裡面讀取一些座標,並將最終輸入結果輸出到輸出檔案裡面。輸入 合法座標為a 或者d或者w或者s 數字 兩位以內 座標之間以 分隔。非法座標點需要進行丟棄。如aa10 a1a yad ...