解题思路:
int 型变量转二进制, 利用循环相除即可。

利用三个 变量来 解决这个 最大连续数的判断问题。
nums:  某一次连续的最大 1bit 数;
max_number_1 : 最大的连续1 bit 数;
last_flag:  上次bit 位是否为1, 用来判断本次循环 nums 是否+1;如果上一位也为1,则最大连续 +1,否则将nums 置为0

#include <stdio.h>

int main(void) {
    unsigned int data = 0;
    while (scanf("%d", &data) != EOF) {
        unsigned int nums = 0;
        unsigned int max_number_1 = 0;
        unsigned int last_flag = 0;
        while (data != 0) {
            if (data%2 == 1) {
                if(last_flag == 1) {
                    nums++;
                } else {
                    nums = 1;
                }
                
                if(nums > max_number_1) max_number_1 = nums;  // 利用本次循环不断将最大连续数量 赋值给到max_number_1 变量
                last_flag = 1;
            } else {
                last_flag = 0;
            }
            data = data/2; // 遍历 二进制的每一位
        }
        printf("%d\n", max_number_1);
    }
    return 0;
}