Форум программистов, компьютерный форум CyberForum.ru

Вывести координаты - C++

Восстановить пароль Регистрация
 
TheSN
153 / 95 / 12
Регистрация: 25.02.2012
Сообщений: 232
18.11.2013, 10:23     Вывести координаты #1
Как решить эту задачу?

Задание

Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "North 5", где слово – одно из "North", "South", "East", "West", – задает направление движения, а число – количество шагов, которое необходимо пройти в этом направлении.

Напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось OX направлена на восток, ось OY – на север.

Формат входных данных

На вход подается последовательность строк указанного формата. Гарантируется, что числа не превосходят 108.

Формат выходных данных

Необходимо вывести координаты клада – два целых числа через пробел. Гарантируется, что эти числа не превосходят 108.


Мое решение

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstring>
using namespace std;
int main() {
    char s[100];
    int n = 0, x = 0, y = 0;
    while (cin >> s) {
    cin.getline(s, 100, '\n');    
    switch (s[0]) {
          case('N'): sscanf(s, "North %d", n); x += n; break;
          case('S'): sscanf(s, "South %d", n); x -= n; ; break;
          case('W'): sscanf(s, "West %d", n); y -= n; ; break;
          case('E'): sscanf(s, "East %d", n); y += n; ; break;
          default:;
    }
    }
    cout << x << " " << y;    
    system("pause");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 10:23     Вывести координаты
Посмотрите здесь:

C++ В файле заданы координаты концов отрезков. Вывести их на экран
Вывести на экран координаты центра всех окружностей, радиус которых не превышает заданного значения. C++
C++ Вывести на экран координаты точки, наиболее удаленной от начала координат
C++ На вход подается некоторое количество треугольников (координаты вершин). Отсортировать и вывести их по возрастанию площадей
Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5953 / 5558 / 1787
Регистрация: 18.12.2011
Сообщений: 14,204
Завершенные тесты: 1
18.11.2013, 10:38     Вывести координаты #2
Похоже на правду за исключение ошибки в sscanf -
при вводе надо указывать адрес переменной:
sscanf(s, "North %d", &n);
Rivory
146 / 112 / 2
Регистрация: 15.01.2013
Сообщений: 266
18.11.2013, 10:43     Вывести координаты #3
А ещё, непонятно, как Вы собрались выходить из этого while. Я бы предложил что-то вроде
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    bool flag = true;
    while (flag)
    {
        cin.getline(s, 100, '\n');
        switch (s[0])
        {
              case('N'): sscanf(s, "North %d", &n); x += n; break;
              case('S'): sscanf(s, "South %d", &n); x -= n; ; break;
              case('W'): sscanf(s, "West %d", &n); y -= n; ; break;
              case('E'): sscanf(s, "East %d", &n); y += n; ; break;
              case('Q'): flag = false; break; //Quit
              default:;
        }
    }
    cout << x << " " << y << endl;
Работает.
TheSN
153 / 95 / 12
Регистрация: 25.02.2012
Сообщений: 232
18.11.2013, 17:37  [ТС]     Вывести координаты #4
Система не распознает флаг такой флаг выхода (Q).
Yandex
Объявления
18.11.2013, 17:37     Вывести координаты
Ответ Создать тему
Опции темы

Текущее время: 02:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru