Estoy teniendo problemas para encontrar la manera de devolver el índice de un elemento de una matriz o una cadena. Mi programa es un ejemplo de un árbol de expresión en un niño de izquierda matriz hijo derecho. El usuario introduce una expresión como x 2 y salida Shaud como sigue:
+ 1 2
2 0 0
x 0 0
El 1 en la columna 2 ª representa la fila del niño y la izquierda está en la 2 en la columna 3 representa la fila del niño es el derecho in Otro ejemplo sería + / 43 * 34
+ 1 4
/ 2 3
4 0 0
3 0 0
* 5 6
3 0 0
4 0 0
este es mi código hasta ahora:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
char s[50];
cout << "Input the prefix expression.\n";
cin >> s;
cout << "\nThe expression tree is:";
int row = strlen(s);
int col = 2;
char a[9][4];
int i, j, c;
int index = 1;
for (j = 0; j < row; j++)
{
a[j][0] = s[j];
for(i = 1; i <= col; i++)
{
if ( s[j] == '+' || s[j] == '-' || s[j] == '*' || s[j] == '/')
{
a[0][i] = index;
}
else
{
a[j][i] = '0';
}
index++;
}
}
for (j = 0; j < row; j++)
{
cout << "\n";
for(i = 0; i <= col; i++)
{
cout << a[j][i] << setw(2);
}
}
cout << "\n\nThe postfix expression is " << endl;
cout << "The infix expression is " << endl;
system ("PAUSE");
return 0;
}
- #include <iostream>
- #include <iomanip>
- using namespace std;
- int main()
- {
- char s[50];
- cout << "Input the prefix expression.\n";
- cin >> s;
- cout << "\nThe expression tree is:";
-
- int row = strlen(s);
- int col = 2;
- char a[9][4];
- int i, j, c;
- int index = 1;
-
- for (j = 0; j < row; j++)
- {
- a[j][0] = s[j];
- for(i = 1; i <= col; i++)
- {
-
-
- if ( s[j] == '+' || s[j] == '-' || s[j] == '*' || s[j] == '/')
- {
- a[0][i] = index;
- }
- else
- {
- a[j][i] = '0';
- }
- index++;
- }
- }
- for (j = 0; j < row; j++)
- {
- cout << "\n";
- for(i = 0; i <= col; i++)
- {
- cout << a[j][i] << setw(2);
- }
- }
- cout << "\n\nThe postfix expression is " << endl;
-
- cout << "The infix expression is " << endl;
-
- system ("PAUSE");
- return 0;
- }