class automat
{
int stari[50], sf[50], n, nsf, si;
char m[50][50];
public:
automat(int a, int b) { setn(a); setstari(); setnsf(b); intitsf(); initm(); }
void setn(int a) { n = a; } //init. nr de stari
void setstari() { for (int i = 0; i < n; i++) stari[i] = i; } // init. starile
void setnsf(int a) { nsf = a; } // init. nr de stari finale
void intitsf() { for (int i = 0; i < nsf; i++) sf[i] = 0; } //init stari finale cu 0 la inceput
void initm() { for (int i = 0; i < n; i++) for (int j = 0; j < n; j++) m[i][j] = NULL; } // init muchii cu 0 la inceput
void setsf(int a) { sf[a] = 1; } // seteaza o stare finala
void addm(int a, int b, char c) { m[a][b] = c; } // adauga muchie
void setsi(int a) { si = a; } // seteaza starea initiala
void afismuchii()
{
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if (m[i][j] != 0)
cout << i << " se duce in " << j << " cu " << m[i][j] << endl;
}
};
int main()
{
ifstream f("file.txt");
int n, m, F;
f >> n; f >> m; f >> F;
automat a(n, F);
int x, y; char c;
f >> x;
a.setsi(x); //init. stare initiala
while (F) // init. stari finale
{
f >> x;
a.setsf(x);
F--;
}
while (m) // init. muchii
{
f >> x; f >> c; f >> y;
a.addm(x, y, c);
m--;
}
a.afismuchii();
}
Прошу извинить мои комментарии и название функций.Метод класса не работает
В конце программы, когда я бегу "a.afismuchii();" я должен получить:
0 переходит в 1 с 0 переходит в 1 с Ь
, но вместо этого, матрица NULL и я только получаю:
0 переходит в 1 с 0 переходит в 1 с
поэтому метод ADDM() не может работать должным образом, но я не понимаю, почему.
Пожалуйста, измените код и добавьте правильный отступ. Без правильного отступа, код трудно читать. И если это трудно читать, кому-то будет труднее помочь вам в решении вашей проблемы. –
Возможно, нам нужно посмотреть, что находится в файле .txt. И не совсем понятно, что вы пытаетесь достичь. Код достаточно прост, чтобы читать, не говоря уже об именах и комментариях на другом языке. И в довершение всего это отформатировано крайне плохо. – mwm314