刚入坑,求解为啥运行结果是0

img
问题是求从1到2019所有包含2、0、1、9的数字的平方和

你这个用string做方便。
然后atoi再做计算。
不然用百分号写的很累。

bool contains(char arrs[] , char a) {
    char* p = arrs;
    bool flag = false;
    while (*p!= '\0') {
        if (*p == a) {
            flag = true;
            break;
        }
        else {
            p++;
            continue;
        }
        
    }
    return flag;
}
int main() {
    long long sum = 0;
    char arrs[5];
    
    for (int i = 1; i <= 2019; i++) {
        sprintf(arrs, "%d", i);
        if (contains(arrs, '2') || contains(arrs, '0') || contains(arrs, '1') || contains(arrs, '9')){
            sum += i * i;
        }
    }
    printf("%lld", sum);
}