Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2018, 19:55   #1
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию работает не правильно - C++

в программу входят a b будут входными
должны выходить a b y
почему у меня на выходе какие то огромные крокозябры?

Код:
#include<iostream>
#include<fstream>
using namespace std;
int main (){
   setlocale(0, "");
// a b будут входными
// a b y будут выходными
    fstream fin("input.txt");
    ofstream fout("output.txt");
    int s=1,num=0;
    char   a;
    char mas[200];
    while (fin>>a)
 {
 
        switch(s)
    {
  case 1:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='a';
              s=2;
              break;
          }
           case 'b':
           {
               mas[num]='y';
              s=1;
              break;
           }
          }
          break;
      }
      case 2:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='a';
              s=3;
              break;
          }
           case 'b':
           {
               mas[num]='b';
              s=2;
              break;
           }
          }
          break;
      }
      case 3:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='b';
              s=1;
              break;
          }
           case 'b':
           {
               mas[num]='a';
              s=4;
              break;
           }
          }
          break;
      }
      case 4:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='a';
              s=5;
              break;
          }
           case 'b':
           {
               mas[num]='a';
              s=4;
              break;
          }
            }
            break;
        }
        case 5:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='a';
              s=5;
              break;
          }
           case 'b':
           {
               mas[num]='b';
              s=6;
              break;
           }
          }
          break;
      }
        case 6:
      {
          switch(a)
          {
          case 'a':
          {
              mas[num]='b';
              s=3;
              break;
          }
           case 'b':
           {
               mas[num]='y';
              s=6;
              break;
          }
            }
            break;
        }
 
    }
    num++;
    }
 
    for(int i=0; i<num; i++)
{
    cout << mas[i];
}
 
 
 
}
Александр121 вне форума Ответить с цитированием
Старый 23.03.2018, 20:00   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Опять вы со своей неотформатированной простыней.

Ну и в любой непонятной ситуации надо заниматься отладкой.
https://habrahabr.ru/post/339038/
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 23.03.2018, 20:05   #3
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

да тут явно с типами ошибка долго искал эксперементировал но решил дать взглянуть профи ведь явно небольшая ошибка.входные с типом char и выходные с char всё верно свитч под char ну даже не знаю где
Александр121 вне форума Ответить с цитированием
Старый 23.03.2018, 21:43   #4
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Код:
 char mas[200];
 memset(mas, 0 , sizeof(mas));
Это
Код:
for(int i=0; i<num; i++)
{
    cout << mas[i];
}
теперь можно заменить на

Код:
cout << mas;

Последний раз редактировалось alexzk; 23.03.2018 в 21:46.
alexzk вне форума Ответить с цитированием
Старый 23.03.2018, 22:45   #5
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

исходник - пздц. Я даже больше скажу:

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 24.03.2018, 00:00   #6
Александр121
Форумчанин
 
Регистрация: 17.09.2017
Сообщений: 265
По умолчанию

а где в моём коде ошибка?
Александр121 вне форума Ответить с цитированием
Старый 24.03.2018, 12:03   #7
Tuxford
 
Регистрация: 24.03.2018
Сообщений: 5
По умолчанию

Цитата:
Сообщение от Александр121 Посмотреть сообщение
а где в моём коде ошибка?
Позвольте поинтересоваться, а дебажить религия не позволяет?
Tuxford вне форума Ответить с цитированием
Старый 24.03.2018, 15:52   #8
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

В твоём коде ошибкой является попытка вложить switch в switch.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Старый 25.03.2018, 02:04   #9
alexzk
Форумчанин
 
Регистрация: 12.04.2017
Сообщений: 889
По умолчанию

Цитата:
Сообщение от New man Посмотреть сообщение
В твоём коде ошибкой является попытка вложить switch в switch.
Почему? Выглядит это как топорная finite-state-machine. Именно так они и пишутся...
alexzk вне форума Ответить с цитированием
Старый 26.03.2018, 03:01   #10
New man
Форумчанин
 
Регистрация: 24.01.2011
Сообщений: 774
По умолчанию

Ну, я бы делал ДКА по-другому.

Я бы хранил всё в какой-нибудь структуре данных.
a.k.a. Angelicos Phosphoros
Мой сайт
New man вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не правильно работает HaKeRR Общие вопросы C/C++ 1 02.01.2015 17:10
Не правильно работает кнопка... FleXik Общие вопросы Delphi 5 13.02.2013 03:24
правильно ли работает программа? ITdocer Паскаль, Turbo Pascal, PascalABC.NET 2 04.11.2011 09:37
Не работает правильно!!! Vitalik1 Помощь студентам 2 01.11.2011 23:11
Не правильно (или правильно?) работает позиционирование в WebKit mutabor HTML и CSS 5 09.12.2010 09:54