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

Пожалуйста найдите ошибку в Конечном Автомате на С++ - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Эрор при компиляции http://www.cyberforum.ru/cpp-beginners/thread829426.html
Здраствуйте) Знаю что вопрос смешной, но все-таки.................. Я вот компилирую программу, студия показывает что все хорошо) Как только нажимаю Сtrl+F5, выполнить построение так оно выдает ошибку. В чем собственно дело?????????? #include <iostream> using namespace std; int main() { cout << "Hello, world!";
C++ Определить, сколько раз каждое число используется в массиве Вот код: #include <iostream> using namespace std; int main() { //двухмерный массив int numbers = {{1, 2, 7} , {2, 5, 3}, {1, 9, 4}, {2, 6, 5}, {7, 2, 2}}; http://www.cyberforum.ru/cpp-beginners/thread829422.html
Правописание C++
Есть метод класса, который в качестве возвращаемого значения выдает указатель. Как правильно писать: int vector :: *get() { ... } или int *vector :: get() { ...
C++ Доступ к элементам связного списка
как организовать самый простой для реализации способ чтобы получить доступ к i-му элементу в односвязном списке? придумал только создать вектор в который помещать адрес элемента из списка, получая доступ к i-му элементу вектора, получаем доступ к нужному элементу связного списка. но тогда сама суть пропадает связного списка, раз вектор используем в придачу к нему.
C++ Двухмерные массивы. Рассчитать среднюю температуру в первом столбце и среднюю во втором столбце http://www.cyberforum.ru/cpp-beginners/thread829417.html
Здравствуйте. Мне нужна программа, в которой используются двухмерные массивы. Массив должен состоять из семи строчек и двух столбцов. (int temperatures). Программа должна попросить пользователя ввести самые высокие показатели температуры и самые низкие показатели температуры за семь дней ( то есть первый столбик это 7 высоких показателей, второй столбик - 7 показателей низких температур)....
C++ Блок схема нужна блок схема по данному коду #include<stdio.h> #include<stdlib.h> int main() { int ms, i, size, min_value, max_value, sum=0,t,sumchet=0; bool flag=false; подробнее

Показать сообщение отдельно
Marad
0 / 0 / 0
Регистрация: 05.04.2013
Сообщений: 15
07.04.2013, 02:34  [ТС]     Пожалуйста найдите ошибку в Конечном Автомате на С++
kamre, Спасибо, программа стала работать лучше но все же есть косяки.
C++
1
2
3
4
5
6
7
8
9
10
    int a[6][7] = 
{
/*         a  b  c  d  f  n  h */
/* 1 */  { 2, 3, 4, 5, 5, 0, 0 },
/* 2 */  { 0, 3, 4, 5, 5, 0, 0 },
/* 3 */  { 0, 0, 4, 5, 5, 0, 0 },
/* 4 */  { 0, 0, 0, 5, 5, 6, 7 },
/* 5 */  { 0, 0, 0, 0, 0, 6, 7 },
/* 6 */  { 0, 0, 0, 0, 0, 0, 7 },
};
Вот я вставил остальные состояния, убрал первую нулевую строку, элементы прибавил на 1, так как использую q=a[q-1][j] в программе.
А можно как нибудь тебе файл отправить чтоб ты подкорректировал программу.

Добавлено через 15 минут
Похоже ошибка в таблице. К примеру, когда я ввожу 'a' 'd' то пишет верно и переходит на 5 строчку, когда 'a' 'd' 'd' то неверно, переходит на ноль.

Добавлено через 54 минуты
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include "iostream"
#include "string.h"
using namespace std;
 
void main()
{
    int j;  
    int a[7][7] = 
{
/*         a  b  c  d  f  n  h */
/* 1 */  { 2, 3, 4, 0, 0, 0, 0 },
/* 2 */  { 2, 3, 4, 5, 5, 0, 0 },
/* 3 */  { 0, 3, 4, 5, 5, 0, 0 },
/* 4 */  { 0, 0, 4, 5, 5, 0, 0 },
/* 5 */  { 0, 0, 0, 5, 5, 6, 7 },
/* 6 */  { 0, 0, 0, 0, 0, 6, 7 },
/* 7 */  { 0, 0, 0, 0, 0, 0, 7 }
};
char s[50];
cin>>s;
int size=strlen(s);
int i=0;
int q=1;
while ((q!=0)&(i<size))
      {
         cout<<"q=="<< q << "\n";
         switch(s[i])
            {
                case 'a': j=0; break;
                case 'b': j=1; break;
                case 'c': j=2; break;
                case 'd': j=3; break;
                case 'f': j=4; break;
                case 'n': j=5; break;
                case 'h': j=6; break;
                default : q=0; break;
            }
    q=a[q-1][j];
    cout<<"q= "<< q << '\n';
    i++;
      };
 
if ((q==1)||(q==5)||(q==6)||(q==7)) cout<<" Yes\n";
else cout<<" No\n";
system("pause");
}
kamre, программа почти работает правильно, но есть одна ошибка, нужно чтоб было d и f были по отдельности как бы сказать, только d или f. Если же к примеру я ввожу acdddfn он должен вывести ошибку, а он говорит что это верно.

Добавлено через 13 секунд
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include "stdafx.h"
#include "iostream"
#include "string.h"
using namespace std;
 
void main()
{
    int j;  
    int a[7][7] = 
{
/*         a  b  c  d  f  n  h */
/* 1 */  { 2, 3, 4, 0, 0, 0, 0 },
/* 2 */  { 2, 3, 4, 5, 5, 0, 0 },
/* 3 */  { 0, 3, 4, 5, 5, 0, 0 },
/* 4 */  { 0, 0, 4, 5, 5, 0, 0 },
/* 5 */  { 0, 0, 0, 5, 5, 6, 7 },
/* 6 */  { 0, 0, 0, 0, 0, 6, 7 },
/* 7 */  { 0, 0, 0, 0, 0, 0, 7 }
};
char s[50];
cin>>s;
int size=strlen(s);
int i=0;
int q=1;
while ((q!=0)&(i<size))
      {
         cout<<"q=="<< q << "\n";
         switch(s[i])
            {
                case 'a': j=0; break;
                case 'b': j=1; break;
                case 'c': j=2; break;
                case 'd': j=3; break;
                case 'f': j=4; break;
                case 'n': j=5; break;
                case 'h': j=6; break;
                default : q=0; break;
            }
    q=a[q-1][j];
    cout<<"q= "<< q << '\n';
    i++;
      };
 
if ((q==1)||(q==5)||(q==6)||(q==7)) cout<<" Yes\n";
else cout<<" No\n";
system("pause");
}
kamre, программа почти работает правильно, но есть одна ошибка, нужно чтоб было d и f были по отдельности как бы сказать, только d или f. Если же к примеру я ввожу acdddfn он должен вывести ошибку, а он говорит что это верно.
 
Текущее время: 18:23. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru