从键盘输入一个正整数,求出它是几位数,为什么输出结果前会出现数字

问题遇到的现象和发生背景 #include <stdio.h>

int data(int m);
int main()
{
int n;
scanf("%d",&n);
printf("weishu is: %d\n",data(n));
return 0;
}

/* 请在这里填写答案 */
函数接口:int data(int m)

问题相关代码,请勿粘贴截图 int data(int m)

{
int n=0;
while(m>0)
{
m=m/10;
n=n+1;
}
printf("%d",n);
return(n);
}

运行结果及报错内容 5weishu is: 5
我的解答思路和尝试过的方法
我想要达到的结果 为什么运行结果前会出现数字

函数内部有个printf,先打印了

img

把函数中的输出去掉

#include <stdio.h>
int data(int m){
    int n=0;
    while(m>0)
    {
    m=m/10;
    n=n+1;
    }
    //printf("%d",n);
    return(n);
}
int main()
{
int n;
scanf("%d",&n);
printf("weishu is: %d\n",data(n));
return 0;
}

定义函数时候的输出屏蔽再看看呢