为什么C语言输出后带有位数

#include
#include
int taxcal(int i)
{int b=0.05i;
int c=0.1
i;
if(i<5000)
printf("%d",0);
else if(i<10000)
printf("%d",b) ;
else
printf("%d",c);
}
int main(){
int a,b,c;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
printf("%d\n",taxcal(a));
printf("%d\n",taxcal(b));
printf("%d\n",taxcal(c));

}
例如 我输入3000 8000 12000
输出为
01
4003
12004
输出后的那个是不是带有位数,怎样去掉

你在taxcal里已经打印了,不要再把taxcal放到printf里嵌套执行
要么在里面直接打印,要么return回来在外面打印,不要两头打印

函数你没有return语句啊