@ linuxfan прав.
Возможно, вы захотите сделать следующее:
while (val>0) {
x=x+bar(--val);
}
, которые оба передают значение, уменьшенное на 1, и изменяют переменную цикла.
Обратите внимание на другое: предположим, что выс ошибками Val
и val
, если они являются одной и той же переменной, возвращаемое значение будет всегда 0, поскольку цикл завершается, когда val
равен 0, а затем возвращает это значение.
Попробуйте этот код:
#include<stdio.h>
int Bar(int val) // value passed is 3
{
int x=0;
while (val>0)
{
x=x+Bar(--val);
}
printf("%d\n", val);
return val;
}
int main (void)
{
Bar(3);
return 0;
}