Зачем return в программе?
Вот если указано return 0; - то программа закончиться.Я правильно понимаю?Только если это return в main().
return это команда закончить текущую функцию (и вернуть значение вызыающей функции)А если ничего не указать?Она будет в памяти висеть или что?С 1998 года она выполнит return 0 (опять же, справедливо только для main() ) как только достигнет конца функции main().Т.е. если указываешь 0, то это типа false.Это EXIT_SUCCESS.А если указать 1?Implementation defined. Обычно работает так же как и EXIT_FAILURE.
Фактически это код выхода. Он возвращается в ОС. Если программа была запущена из командной строки этот код выхода можно проверить чтобы узнать как была завершена программа.
main() - это входящая функция. И все же это именно функция, со всеми вытекающими свойствами.
Ее можно обьявить как void, а значит она не должна что либо возвращать и return писать не надо.
Все же многие не понимают по началу, что return, это не только остановка программы, но еще и вывод результата работы функций.
Пример://создаем свою собственную функцию, которая что-то делает и что-то возвращает.
int myrandom() {
    int a;
    a = rand()%100; //генерация случайного числа
    return a; // возвращаем результат генерации
}

//а вот наша программка, в которой мы вызовем эту функцию.
void main() {
  int s = myrandom(); // функция myrandom возвращает результат в переменную s.
  cout << s;
}