C 中的无符号整数表示法

Unsigned integer notation in C

我已经写了一些代码,但我一直收到这个错误,我不确定如何解决这个问题。

hw6.c:14:13: warning: data argument not used by format string [-Wformat-extra-args]
        scanf("&u",n);
              ~~~~ ^

下面是我的代码:

#include <stdio.h>

unsigned int reverse_bits(unsigned int n);

int main(void) {
    unsigned int n;
    printf("Enter an unsigned integer: ");
    scanf("&u",&n);
    printf("%u",reverse_bits(n));
    return 0;
}

unsigned int reverse_bits(unsigned int n) {
    unsigned int reverse = 0;
    while(n>0) {
        reverse <<= 1;
        if((n & 1) == 1) {
            reverse = reverse^1;
        }
    }
    return reverse;
}

谢谢!

Scanf 使用 % 作为其格式说明符,因此正确的方法是

scanf("%u",&n);