Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
1

Помогите разобраться

31.10.2011, 17:21. Просмотров 658. Ответов 14
Метки нет (Все метки)

У меня есть координаты North,West,East,South. Мне нужно отобразить их на осях ОХ и ОУ.
Допустим я ввожу
North 5
East 3
South 1
Вывод х=3, у=4.
Код
#include <iostream>
#include <cstring>

using namespace std;

int main(){
  int n;
  int k=0;int x=0,y=0;
  char str[100];

  
    while(cin>>str>>n){

  if(!strcmp(str,"North"))  
  y=n;
  if(!strcmp(str,"South"))
    y=y-n;
  if(!strcmp(str,"East"))
    x=n;
  if(!strcmp(str,"West"))
     x=x-n;
  }        
  
  cout<<x<<" "<<y<<" ";
  return 0;}
Добавлено через 2 минуты
Я ввожу данные, но чтоб вывести результат мне нужно ввести еще 2 строки, как сделать как в примере
North 5
East 3
South 1
Вывод
3 4
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.10.2011, 17:21
Ответы с готовыми решениями:

If else помогите разобраться
Доброго времени суток всем. Не так давно начали программировать в C++ MS Visual Studio 2010? и...

Помогите разобраться со структурами
Приветствую всех! :) Мне дали очередное задание с которым, конешноже я не могу самостоятельно...

ПОМОГИТЕ РАЗОБРАТЬСЯ В КОДЕ
#include &lt;time.h&gt; #include &lt;conio.h&gt; #include &lt;iostream&gt; #include &lt;assert.h&gt; #include...

Помогите разобраться с циклом while.
Здравствуйте. Уже долго мучаюсь с крестиками-ноликами. Наконец то подошел финал, как вдруг на самом...

Помогите разобраться с классами в C++
Есть задание по ООП С++ Используя классы создать кольцо.Записи кольца включают в себя указатели на...

14
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 17:39 2
Вообще странно почему она у тебя выдает результат.
Мне кажется что твоя прога должна войти в вечный цикл.
while(cin>>str>>n) - вызывает подозрение. Какое у тебя условие выхода из цикла?
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 17:41  [ТС] 3
Я же написал я ввожу данные координат North
East и другие координаты потом приходится вводить две любые строки.
Я и прошу в этом помочь.
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 17:47 4
Кажется я понял cin>>str>>n пытается прочитать строку, потом число. Так как ты в конце вводишь 2 строки она первую воспринимает как строку, вторую пытается преобразовать в число, но преобразовать вторую строку в число не может. По этой ошибке cin>>str>>n возвращает false и цикл завершается.

Подумай, когда тебе надо завершить цикл, как я понимаю когда все координаты введены. Этого нет в твоей проге.
0
31.10.2011, 17:47
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 17:50  [ТС] 5
Да вы правы программа работает, выводит координаты Х и У. Но мне нужно чтобы ввод был без двух доп. строк.
Допустим я ввожу
North 5
East 3
South 1 и приходится вводить еще ну допустим s
fhads
vsdgs
Вывод 3 4
Подумай, когда тебе надо завершить цикл, как я понимаю когда все координаты введены. Этого нет в твоей проге.
Вот как раз это я не могу сделать.
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 17:58 6
Может попробовать переписать программу попроще, без циклов:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#include <iostream>
#include <cstring>
 
using namespace std;
 
int main(){
  int n;
  int k=0;int x=0,y=0;
  char str[100];
 
  cout << "input North"
  cin >> n;
  y=n;
 
  cout << "input South"
  cin >> n;
  y=y-n;
 
  cout << "input East"
  cin >> n;
  x=n;
 
  cout << "input West"
  cin >> n;
  x=x-n;
 
  cout<<x<<" "<<y<<"\n";
  return 0;}
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 18:02  [ТС] 7
Хороший вариант), я так делал, но есть условия, смотрите на Ввод и вывод.
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 18:04 8
Цитата Сообщение от Busterr Посмотреть сообщение
Да вы правы программа работает, выводит координаты Х и У. Но мне нужно чтобы ввод был без двух доп. строк.
То что твоя программа работает - это чистая случайность. У тебя неправильное условие завершения цикла.
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 18:09  [ТС] 9
Я ведь и прошу с этим помочь, что непонятно
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 18:10 10
Я попробую пофиксить твою прогу если ты мне объяснишь в каком случае ввод должен закончится и должен быть выведен результат?
у тебя в примере например вводится только North East South но не вводится West.
Что должна делать прога если например North введут 2 раза?
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 18:16  [ТС] 11
Нет скорее всего ввод только один раз. Либо одна сторона света либо две .. до четырех.
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 18:33 12
Ок, тогда расскажи как после того как ты ввел первую сторону света мы узнаем хочешь ты вводить вторую или не хочешь?
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
31.10.2011, 18:39  [ТС] 13
Такое чувство, что ты хочешь натолкнуть меня на какое-то решение. Но я не знаю, поэтому и зашел на форум. Ты можешь и не использовать while, если у тебя есть другие идеи.
0
ksandro
31 / 31 / 4
Регистрация: 15.04.2011
Сообщений: 81
31.10.2011, 18:49 14
Нет, я хочу сам понять что надо сделать. Пока не понятно что сделать, понять как сделать нельзя.

Компьютер никак не сможет сам догадаться есть ли у пользователя желание продолжить ввод после того как он вводит одну сторону света. Компьютер либо должен заранее знать сколько сторон света введет пользователь, либо пользователь должен как то просигналить о том что он закончил ввод.

Для начала надо понять как должна работать программа, а потом уже писать.
0
Busterr
-25 / 1 / 0
Регистрация: 25.09.2011
Сообщений: 50
01.11.2011, 12:43  [ТС] 15
Как тогда узнать, в какой момент прекратить ввод и вывести результат?

У вас там будет даваться конечный набор данных,так что цикл завершиться когда данные кончаться - вот и все.

Добавлено через 16 часов 56 минут
Все спасибо я сделал, там была маленькая ошибка
0
01.11.2011, 12:43
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.11.2011, 12:43

Помогите разобраться с кодом
Код - проверка ввода данных. Если вводиться &quot;x6x&quot;, то вызывается исключение, правильным вводом...

Помогите разобраться с итераторами
У меня есть шаблон класса контейнер. Я использую vector из stl. Так вот мне нужен итератор для...

Помогите разобраться с рекурсией...
Здравствуйте, нашел решение задачи &quot;ханойских башен&quot;, проблема с пониманием. &lt;...&gt; ...


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

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

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