Точка с запятой после объявления функции main
:
int main(void);
интерпретируется компилятором как обозначение конца этой функции.Поскольку точка с запятой есть, она не знает, что делать с блоком кода, который следует за объявлением этой функции.Вот что говорит вам ошибка компиляции:
prog.c: 5: ошибка: ожидаемый идентификатор или '(' перед '{' токеном
Это не такзнать, что делать с {
, который идет после токена точки с запятой, который указывает на конец оператора.
Удаление точки с запятой - это простое решение, переписайте свою основную функцию следующим образом:
int main(void)
{
printf("Enter two numbers:");
scanf("%d %d",&num1,&num2);
sum(num1,num2);
return 0;
}
Что касается проблемы, поднятой в комментариях:
видите, когда я запускаю вывод, он запрашивает ввод двух чисел и не показывает никакого результата суммы ??
Ах, это совершенно другая проблема. Код синтаксически правильный, поэтому вы больше не получаете ошибок компилятора, но есть ошибка логика ! Вы никогда не говорили компьютеру print сумма этих двух чисел на экране. Вам нужно вставить еще один оператор printf
, такой же, как первый, который у вас есть. Но на этот раз вы хотите напечатать значение, возвращаемое sum
функция.
ThОкончательный код может выглядеть примерно так:
int main(void)
{
printf("Enter two numbers:");
scanf("%d %d",&num1,&num2);
printf("%d\n", sum(num1, num2));
return 0;
}