写了个递归的函数, 为啥会报错啊标题长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长

写了个递归的函数, 为什么会报错啊?标题长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长长
#include <stdio.h>
#include <stdlib.h>

int f(int n,int A,int B)
{
    if(n==1||n==2)return 1;
    else return (A*f(n-1)+B*f(n-2))%7;
}

int main()
{
    int A,B,n;
    while ()
    {
        scanf("%d %d %d",&A,&B,&n);
        if(A==0&&B==0&&n==0)break;
        printf("%d\n",f(n,A,B));
    }
    return 0;
}


In function 'f':
error: too few arguments to function 'f'
declared here

------解决思路----------------------
f不是3个参数吗
你写了1个 f(n-1)
------解决思路----------------------
你是要这个吧

#include <stdio.h>
#include <stdlib.h>

int f(int n, int A, int B)
{
if (n == 1 
------解决思路----------------------
 n == 2)return 1;
else return (A*f(n - 1, A, B) + B*f(n - 2, A, B)) % 7;
}

int main()
{
int A, B, n;
while (1)
{
scanf("%d %d %d", &A, &B, &n);
if (A == 0 && B == 0 && n == 0)break;
printf("%d\n", f(n, A, B));
}

return 0;
}