只能用加减法求两个数的商和余数,为啥我的余数是负的?

#include <stdio.h>

int main()
{
int n,k,a=1,b=0;
printf("please enter two numbers");
scanf("%d%d",&n,&k);
if(n<=0||k<=0)
{
printf("the numbers must be bigger than 0");
}
else
{
if(n<k)
{
printf("n/k,there is no quotient,the emainder is %d\n",n);
}
else if(n>=k)
{
while(k<n)
{
k+=k;
a++;
}
b=n-k;
printf("n/k,the quotient is %d,the emainder is %d\n",a,b);
}
}
return 0;
}