91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C語言中坐標移動的示例分析

發布時間:2021-07-22 09:43:11 來源:億速云 閱讀:157 作者:小新 欄目:編程語言

小編給大家分享一下C語言中坐標移動的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

題目描述

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

以上是“C語言中坐標移動的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临猗县| 大安市| 雅江县| 肃南| 日照市| 乌兰浩特市| 苏尼特左旗| 栾城县| 寻乌县| 定西市| 丰宁| 元氏县| 林甸县| 浦北县| 渝中区| 教育| 贡嘎县| 廊坊市| 布尔津县| 尼勒克县| 西和县| 辰溪县| 太和县| 桐乡市| 曲沃县| 合阳县| 滁州市| 武安市| 雷山县| 安远县| 宁武县| 兴业县| 黔西| 剑阁县| 北宁市| 田阳县| 本溪市| 登封市| 九龙城区| 全椒县| 滁州市|