pta报错,可是在编译器中答案是正确的

pta上报错答案错误,但在编译器中答案是正确的

img

######提示答案错误

#include
int main()
{
    int num,a,b,c,n;
    int sum=0;
    scanf("%d",&n);
    for(num=100;num<=n;num++){
        a=num/100;
        b=num%100/10;
        c=num%10;
        if(num==a*a*a+b*b*b+c*c*c){
            sum+=num;
            printf("%d",sum);
        }
    }
    return 0;
}


运行结果及详细报错内容

在编译器里是正确的,结果pta上就有错误

img

我的解答思路和尝试过的方法

我之前的代码用了math头文件,后面又删了还是不行

修改如下,供参考:

#include<stdio.h>
int main()
{
    int num, a, b, c, n, ret;
    int sum = 0;
    ret = scanf("%d", &n); //修改
    if (ret == 1) {
        for (num = 100; num <= n; num++) {
            a = num / 100;
            b = num % 100 / 10;
            c = num % 10;
            if (num == a * a * a + b * b * b + c * c * c) {
                sum += num;
            }
        }
        printf("%d", sum); //修改
    }
    return 0;
}

看错误不能只看编译器和样例,pta都是分好多个样例的,答案错误就是有些样例没过