[ create a new paste ] login | about

Link: http://codepad.org/Z8biQw5H    [ raw code | output | fork ]

hoaithu.melody - C++, pasted on Mar 9:
//AlgebraicExpression
//cho 1 cay nhi phan, tinh ra ket qua cuoi cung
#include <iostream>
#include <cstring>
#include <cstdlib>

using namespace std;

int N;
int Number[1001], Firstchild[1001], Secondchild[1001];
char Operator[1001];

int main(int argc, char** argv)
{
	int test_case;
	freopen("Testcase.txt", "r", stdin);
	for(test_case = 1; test_case <= 10; ++test_case)
	{
		int i;
		memset(Firstchild, 0, sizeof(int) * 1001);
		memset(Secondchild, 0, sizeof(int) * 1001);
		memset(Number, 0, sizeof(int) * 1001);
		memset(Operator, 0, sizeof(char) * 1001);

		cin >> N;
		int max;
		for(i = 0; i < N; i++)
		{
			int addr;
			char buf[10];
			cin >> addr;
			cin >> buf;
			if ((buf[0] == '+') || (buf[0] == '-') || (buf[0] == '*') || (buf[0] == '/'))
			{
				Operator[addr] = buf[0];
				cin >> Firstchild[addr] >> Secondchild[addr];
				max = addr;
			}
			else Number[addr] = atoi(buf);
		}
		
		for(i = max; i >=1; i--)
		{
			if(Operator[i] == '+')
				Number[i] = Number[Firstchild[i]] + Number[Secondchild[i]];
			if(Operator[i] == '-')
				Number[i] = Number[Firstchild[i]] - Number[Secondchild[i]];
			if(Operator[i] == '*')
				Number[i] = Number[Firstchild[i]] * Number[Secondchild[i]];
			if(Operator[i] == '/')
				Number[i] = Number[Firstchild[i]] / Number[Secondchild[i]];
		}
		
		cout << "#" << test_case;
		cout << " " << Number[1] << endl;;
	}

	return 0;
}


Output:
1
2
3
cc1plus: warnings being treated as errors
In function 'int main(int, char**)':
Line 26: warning: 'max' may be used uninitialized in this function


Create a new paste based on this one


Comments: