開發乙個座標計算工具, 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命令編輯 分 時 日 月 周...