我在x中出现了多少次(无符号32位int C)

MOT*_*DEX 0 c int unsigned sum

这对我来说有点混乱,但我必须看看我在x中出现了多少次.因此,如果有人为i输入3而x为4294967295,则应该说0次,但如果有人输入9表示i和4294967295表示x,则应该说3次.

这就是我所拥有的,但输出0表示为0,所以它不起作用..

int main(int argc, char** argv) {
    unsigned int i;
    scanf("%u", &i);
    unsigned int x;
    scanf("%u", &x);
    int output = 0;
    int t = 0;
    while (t < 10) {
        x /= 10;
        if (i == x) {
            output++;
        }
        t++;
    }
    printf("%d", output);
}
Run Code Online (Sandbox Code Playgroud)

Som*_*ude 6

问题是,你比较i整体x而不是检查的每个数字,x.

最简单的解决方案可能是i作为一个角色阅读,确保它是一个数字.然后读x作一个字符串(并确保它也是所有数字).然后对于字符串中的每个字符进行x比较i.