void 函数不能整除 99 以上的整数

-1 c++

当我给它 1011 和 100 时,我收到这条消息: “进程返回 -1073741676 (0xC0000094) 执行时间:4.425 秒” 我不知道为什么如果我给它 99 和 100 它可以工作并且显示 0但是如果我给它 100,它就会开始给出上面的消息,它应该告诉我 n 中有多少个数字除以 k。

#include<iostream>
using namespace std;
void cate(int n,int k,int &x){
    int u=n%10;
    while(n){
        if(k%u==0) x++;
        n/=10;u=n%10;
    }
}
int n,k,x;
int main()
{
    cin>>n>>k;
    cate(n,k,x);
    cout<<x;
}
Run Code Online (Sandbox Code Playgroud)

eer*_*ika 7

u=n%10;
Run Code Online (Sandbox Code Playgroud)

n能被 10 整除时,u为零。

k%u
Run Code Online (Sandbox Code Playgroud)

u为零时,程序的行为未定义。