这对我来说有点困惑,但我得看看我在x中出现了多少次。
所以如果有人输入3代表i,x是4294967295,那么应该是0次,但是如果有人输入9代表i,4294967295代表x,应该是3次。
这就是我所拥有的,但是输出是0加9,所以它不起作用。。

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);
}

最佳答案

int main(int argc, char** argv) {

    unsigned int i;
    scanf("%u", &i);
    if(i > 9) {                                 // check it's a single digit
        printf("expecting a single digit\n");
        return 1;                               // to indicate failure
    }

    unsigned int x;
    scanf("%u", &x);

    int output = 0;      // initialized output, removed t (use x directly instead)
    if(x == 0) {         // special case if x is 0
        if(i == 0) {
            output = 1;
        }
    } else {

        while(x > 0) {         // while there is at least a digit
            if(i == (x % 10)) {  // compare to last digit
                output++;
            }
            x /= 10;            // remove the last digit
        }

    }

    printf("%d\n", output);    // added \n to be sure it's displayed correctly
    return 0;                  // to indicate success

}

另外,我建议使用更明确的变量名,比如digitnumber,而不是xi

关于c - 我在x中发生了多少次(无符号32位int C),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22479887/

10-13 07:58