Я пытаюсь изучить функции вызова, и я столкнулся с проблемой, когда мне говорят, что мне нужно, чтобы объявить a
, b
, c
и d
, но точка программы - пригласить пользователя для этих чисел, а затем суммировать их.Как объявить переменные, когда я предлагаю пользователю ввести их?
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
int f(int a, int b, int c, int d);
int g(int b, int c, int d);
int h(int c, int d);
int i(int d);
int
main(int argc,char **argv)
{
int result;
result = f(a,b,c,d);
printf("Value of a?");
scanf("%d",a);
printf("Value of b?");
scanf("%d",b);
printf("Value of c?");
scanf("%d",c);
printf("Value of d?");
scanf("%d",d);
printf("Your result is %d",result);
return 0;
}
int
f(int a, int b, int c, int d)
{
return a + g(b,c,d);
}
int
g(int b, int c, int d)
{
return b + h(c,d);
}
int
h(int c, int d)
{
return c + i(d);
}
int
i(int d)
{
return d + d;
}
Конкретное предупреждение
call.c:16:13: error: ‘a’ undeclared (first use in this function)
result = f(a,b,c,d);
и это повторяется для б, в и г.
Может ли кто-нибудь сказать мне, что я сделал неправильно? Я поставил функции подписи вверху, где int a
, int b
, int c
и int d
уже определены, поэтому я смущен относительно того, что я сделал неправильно.
Редактировать: Вопрос был решен! Код должен выглядеть
int result;
int a;
int b;
int c;
int d;
printf("Value of a?");
scanf("%d",&a);
printf("Value of b?");
scanf("%d",&b);
printf("Value of c?");
scanf("%d",&c);
printf("Value of d?");
scanf("%d",&d);
result = f(a,b,c,d);
printf("Your result is %d",result);
return 0;
Объявите их сразу после 'int result'; –
FYI, используйте более описательные имена переменных/функций. – 2014-09-17 02:38:20
Параметры функции f не связаны с основными функциями a, b, c, d. Вы могли бы назвать их w, x, y, z или что угодно. Они должны быть объявлены в основном. –