Considering that a and b are positive numbers then (a - b) will always be less than (a + b). In integer arithmetic an smaller integer divided by a larger integer (compared to one another of course) will always be zero. So if the difference of both integers is smaller than half the sum you will always end up with zero.
Just change your calculation like this:
TextBox3.Text = Convert.ToString((a - b) * 100 / ((a + b) / 2));
or even like this.
TextBox3.Text = Convert.ToString((a - b) * 100.0 / ((a + b) / 2));
Cheers!
[Edit]
I just noticed that you based your calculation on the TextChanged event. That is not appropriate, as this event is being fired for every edit that is made and you're not making sure that every text field is properly filled and you're also not checking that the conversion is done properly. For all I know it may throw exceptions based on what exactly your input was.
try
{
int a = Convert.ToInt32(TextBox1.Text);
int b = Convert.ToInt32(TextBox2.Text);
TextBox3.Text = Convert.ToString((a - b) * 100.0 / ((a + b) / 2));
}
catch()
{
TextBox3.Text = "Conversion failed!";
}
This would be more appropriate.
[/Edit]