Using functions to separate code for Fahrenheit to celsius conversion
In a more complex program I would probably extract the loop, but I think this is actually pretty good as is. Your main routine reads very well and describes precisely what this program does. You separated the concerns of performing the conversion and displaying the results and your conversion method performs a single task. I agree that extracting it was a wise choice. 

You'll often hear the phrase 


  A method should do one thing, and do it well. 


You nailed the first part, but I'm not so sure about the second. I guess it depends on how accurate you need it to be. 


  int celsius = 5 * (fahr-32) / 9;



This is very likely to be a non-integer number before you cast it. C casts from floating point to integer via truncation. This means that you're always "rounding" the result down. I doubt that's what you intended. Use the round() method instead for a more accurate result. Or, even better, return a double. 

One other thing, don't abbreviate variable names. I understand why you used fahr instead of fahrenheit, but it's a bad habit to get into.