国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C > 正文

C語言 坐標移動詳解及實例代碼

2020-01-26 14:17:07
字體:
來源:轉載
供稿:網友

題目描述

開發一個坐標計算工具, 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

Code:

#include<iostream> #include<string> using namespace std;  bool isValid(string s, char &key, int &step){   if (s.size()<2 || s.size()>3)return false;   if (s[0] != 'A' && s[0] != 'D' && s[0] != 'W' && s[0] != 'S')     return false;   key = s[0];   if (s.size() == 2 && s[1] >= '0' && s[1] <= '9'){     step = s[1] - '0';     return true;   }   if (s.size() == 3 && s[1] >= '0' && s[1] <= '9' && s[2] >= '0' && s[2] <= '9'){     step = (s[1] - '0') * 10 + (s[2] - '0');     return true;   }   return false; }   void caculator(string s, int &x, int &y, char key, int step){   switch (key){   case 'A':     x -= step;     break;   case 'D':     x += step;     break;   case 'W':     y += step;     break;   case 'S':     y -= step;     break;   }   return; }  int main(){   string str;   while (cin >> str){     int x = 0;     int y = 0;     int i = 0;     while (i<str.size()){       string temp;       char key;       int step;       while (str[i] != ';'){         temp.push_back(str[i]);         i++;       }       if (isValid(temp, key, step))         caculator(temp, x, y, key, step);       i++;     }     cout << x << ',' << y<<endl; //must add endl(wtf...,waste time)   }   return 0; } 

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 陇川县| 滦南县| 兴仁县| 睢宁县| 新竹县| 册亨县| 稷山县| 张家口市| 普安县| 比如县| 达州市| 沂南县| 墨竹工卡县| 汾阳市| 阿克陶县| 太仓市| 延长县| 额尔古纳市| 武冈市| 象山县| 腾冲县| 吴忠市| 平定县| 文水县| 扎兰屯市| 嫩江县| 彭泽县| 大冶市| 七台河市| 宁化县| 内丘县| 迭部县| 水富县| 英吉沙县| 怀来县| 邹城市| 棋牌| 平乡县| 阿鲁科尔沁旗| 平塘县| 星子县|