每日一道C語言程式設計題 座標移動

2021-10-10 22:50:59 字數 1495 閱讀 4236

開發乙個座標計算工具, 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)

注意請處理多組輸入輸出

一行字串
最終座標,以逗號分隔

示例輸入

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

10,-10
//c**

#include #include #include #include "stdbool.h"

#define max_stringlen 1000

#define legalpoint 3

#define islegalpoint 2

typedef struct point_ point;

//是否是合法輸入

bool isvalid(char *s)

if (s[0] != 'a' && s[0] != 's' && s[0] != 'w' && s[0] != 'd')

for (int i = 1; i < slength; i++)

}return true;

}//移動座標

void movepoint(point *point, char *s) else if (s[0] == 's') else if (s[0] == 'w') else

}int main()

; char *p = (char *)malloc(max_stringlen * sizeof(char));

while (gets(p) != null)

temp = strtok(null, ";");

}printf("%d,%d", point.x, point.y);

}return 0;

}

每日一道演算法題

no.1 設指標變數fron t表示鏈式佇列的隊頭指標,指標變數rear表示鏈式佇列的隊尾指標,指標變數s指向將要入佇列的結點x,則入佇列的操作序列為 a.front next s front s b.s next rear rear s crear next s rear s d.s next f...

每日一道演算法題

no.1 若有 18 個元素的有序表存放在一維陣列 a 19 中,第乙個元素放 a 1 中,現進行二分查詢,則查詢 a 3 的比較序列的下標依次為 a.1,2,3 b.9,5,2,3 c.9,5,3 d.9,4,2,3 答案 d.第一次查詢,隊首為下標1,隊尾下標18,所以是 1 18 2 9 第二...

每日一道Linux題

no.1 以下的命令得在 自動執行 06 03 3 lp usr local message mail s server message root a.每週三06 03分 b.每週六03 03分 c.每週三03 06分 d.每週六03 06分 答案 c 使用crontab命令編輯 分 時 日 月 周...