>>551
多くの処理系(というか OS)では
main 関数の戻り値が 0 であった場合に
プログラムが正常終了したと見なします。

なので、特に main 関数の中で問題が発生しなかったときには
return 0 などとしているわけです。
でも 0 が正常終了を表さないような処理系もあるので、
次のように書く方が移植性が高いでしょう。

#include <stdlib.h>

int main (void)
{
     // your main code here
     return EXIT_SUCCESS;
}