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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
TheSN
153 / 95 / 12
Регистрация: 25.02.2012
Сообщений: 232
#1

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

18.11.2013, 10:23. Просмотров 352. Ответов 3
Метки нет (Все метки)

Как решить эту задачу?

Задание

Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: "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;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2013, 10:23
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывести координаты (C++):

Даны координаты точек х1, у1, ... х15, у15. Если точка попадает на плоскость, ограниченную кругом x2 + y2 = R2 - вывести ее координаты - C++
Лабораторная работа 5. Одномерные массивы * * Для задач этого раздела необходимо составить графический алгоритм, провести...

Вывести координаты элемента матрицы по формуле - C++
Задание: Вывести координаты элемента матрицы с найменьшим весом по формуле {W}_{ij}= \sum_{j=1}^{m}\sum_{i=1}^{n}...

Найти и вывести координаты центра окружности - C++
Друзья, нужна помощь. Девушке задали лабы по СИ, она не шарит. Знакомых всех спросил, никто не может помочь. Вот она: 1. Диаметр...

Вывести координаты максимального элемента в каждой строке. - C++
Задан массив действительных чисел. Вывести координаты максимального элемента в каждой строке.

Вывести на экран все нулевые элементы и их координаты - C++
Дан массив размером 9*9 , задача вывести на экран все нулевые элементы и их координаты, которые размещены в участке который выделен черным:...

Оператор for. Вывести координаты и длины отрезков на числовой оси - C++
Дано целое число N(&gt;1) и две вещественные точки на числовой оси: A,B (A&lt;B). Отрезок разбит на N равных отрезков. Вывести H - длину каждого...

3
zss
Модератор
Эксперт С++
6477 / 6040 / 1981
Регистрация: 18.12.2011
Сообщений: 15,648
Завершенные тесты: 1
18.11.2013, 10:38 #2
Похоже на правду за исключение ошибки в sscanf -
при вводе надо указывать адрес переменной:
sscanf(s, "North %d", &n);
0
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;
Работает.
0
TheSN
153 / 95 / 12
Регистрация: 25.02.2012
Сообщений: 232
18.11.2013, 17:37  [ТС] #4
Система не распознает флаг такой флаг выхода (Q).
0
18.11.2013, 17:37
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.11.2013, 17:37
Привет! Вот еще темы с ответами:

Структура: вывести в консоль координаты точки, отрезка треугольника - C++
С Новым Годом! точка, отрезок, треугольник и вывести в консоль координаты точки, отрезка треугольника. Спасибо!

В файле заданы координаты концов отрезков. Вывести их на экран - C++
в файле задано координаты концов отрезков. Вівести их на екран. Количество отрезков не известно помогите осуществить ету задачу,...

Вывести на экран координаты точки, наиболее удаленной от начала координат - C++
2. С помощью ГСЧ задать матрицу А(5,2), содержащую координаты точек на плоскости. Вывести ее на экран в прямоугольном виде. Вывести на...

Вывести координаты клада – два целых числа через пробел - C++
Капитан Флинт зарыл клад на Острове сокровищ. Он оставил описание, как найти клад. Описание состоит из строк вида: &quot;North 5&quot;, где слово –...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru