Так кажете, ніби компілятор — це екстрасенс, який знає, чого хоче топікстартер. У деяких випадках повідомлення про помилку надто загадкові. Наприклад, компілятор не бачить, що зайва дужка в 10 рядку, а не в останньому — відповідно, в 10 помилки «нема», зате в 11 компілятор побачить якийсь незрозумілий опис функції з рядковим літералом замість параметрів, а потім ще якийсь незрозумілий тип return, після якого йде числовий літерал замість імені змінної, і ще там відкриваюча дужка в останньому рядку пропущена...
До речі, не здивуюсь, якщо в двох передостанніх рядках нема крапок з комами, бо компілятор на них чогось лаявся.