递归函数挨个输出输入的int字符,超过十位就出错,如何解决?

问题遇到的现象和发生背景

visual studio2019

问题相关代码,请勿粘贴截图

void frequency(int x) {
if (x>9)
{
frequency(x / 10);
}
printf("%d \n", x % 10);
}
int main()
{
int a = 0;
scanf_s("%d", &a);
printf("逐个打印为:\n");
frequency(a);
}

运行结果及报错内容

img

我的解答思路和尝试过的方法
我想要达到的结果

怎么才能不管多少位都能挨个打印输出

img

你定义的是个int 最大只能存65536 你输入的数天大了 int装不下

建议定义成数组 存储

int 最大2147483647,10位,超过后变成负值了。

我还在疑惑没有问题,然后看到你的输入,看到楼上大神的评论。。。
int类型的最大值啊~

img