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

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

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

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

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

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

вообщем на вход подаются 0 и 1
программа должна выдавать на выходе вот такие знаки * + -
посмотрите почему у меня выводится фиг пойми что может в выводе что то не так

Код:
#include<iostream>
#include<fstream>
using namespace std;
int main (){
    fstream fin("input.txt");
    ofstream fout("output.txt");
    int  s=1,num=0;
    int a;
    int mas[40];
    while(fin>>a)
 {
 
        switch(s)
    {
  case 1:
      {
          switch(a)
          {
          case 0:
          {
              mas[num]='*';
              s=1;
              break;
          }
           case 1:
           {
               mas[num]='-';
              s=2;
              break;
           }
          }
          break;
      }
      case 2:
      {
          switch(a)
          {
          case 0:
          {
              mas[num]='*';
              s=1;
              break;
          }
           case 1:
           {
               mas[num]='+';
              s=3;
              break;
           }
          }
          break;
      }
      case 3:
      {
          switch(a)
          {
          case 0:
          {
              mas[num]='*';
              s=4;
              break;
          }
           case 1:
           {
               mas[num]='-';
              s=1;
              break;
           }
          }
          break;
      }
      case 4:
      {
          switch(a)
          {
          case 0:
          {
              mas[num]='-';
              s=5;
              break;
          }
           case 1:
           {
               mas[num]='-';
              s=3;
              break;
          }
            }
            break;
        }
        case 5:
      {
          switch(a)
          {
          case 0:
          {
              mas[num]='+';
              s=4;
              break;
          }
           case 1:
           {
               mas[num]='*';
              s=5;
              break;
           }
          }
          break;
      }
      break;
    }
    num++;
    }
 
    for(int i=0; i<num; i++)
{
    cout << mas[i];
}
}
Александр121 вне форума Ответить с цитированием
Старый 17.03.2018, 00:21   #2
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,493
По умолчанию

Начните с того, что обнулите mas в начале, а потом задайте себе вопрос что будет с циклом while если в а будет 0.
waleri вне форума Ответить с цитированием
Старый 17.03.2018, 02:35   #3
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Я не понял задание. Прога пипец.
Оригинал задания и пример входного файла и вывода давай.

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не выводится правильно поиск Keitlin Помощь студентам 0 13.12.2014 10:58
Если массив начинается с 0, то ноль не выводится rager06 Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2011 15:48
Странно выводится массив... Romantik (Dima) Общие вопросы C/C++ 3 16.12.2010 18:52
Массив не выводится на экран vikaspb Общие вопросы C/C++ 7 22.01.2009 17:29