Both global variables op and result need to be reset for each iteration of while loop.
while(arr_value[vali]!=1000)
{
//Set global x value
x=arr_value[vali];
//Solve expression
//Print result
solveExpression(expression,80,x) ;
printf("\n result %d\n", result);
//Next Value
vali++;
result=0;
op='\0'; // add this line to reset global variable
}
solved Garbage values are getting assigned