Hello i have a problem with run time error or with the limit of compilation
#include <iostream>
#include<stack>
const int expression_max = 400;
using namespace std;
int p(char c)
{
switch (c)
{
case '+':;
case '-': return 1;
case '*':;
case '/': return 2;
case '^': return 3;
}
return 0;
}
int main()
{
char expression[expression_max];
char c;
int spr = 0;
int t;
cin >> t;
for (int i = 0; i < t; i++)
{
while (true)
{
cin >> c;
if (c == '=')
{
while (spr) cout << expression[--spr] << ' ';
break;
}
switch (c)
{
case ' ': break;
case '(':expression[spr++] = '('; break;
case ')': while (expression[spr - 1] != '(') cout << expression[--spr] << ' ';
spr--; break;
case '+':;
case '-':;
case '*':;
case '/':;
case '^': while (spr && p(expression[spr - 1]) > p(c))
cout << expression[--spr] << ' ';
expression[spr++] = c;
break;
default: cout << c << ' ';
break;
}
}
cout << endl;
}
system("pause");
return 0;