基础c语言,哪位兄弟帮我解解啊

假设键盘输入一个合法的四位数n,请编程计算并输出n的个位d1、十位d2、百位d3、千位d4的立方和(即输出d13+d23+d33+d43)。

循环求余求出每一位的值,然后计算立方和啊

int main()
{
      int a[4] = {0};
      int n,i=0,sum=0;
      scanf("%d",&n);
      while(n > 0 && i<3)
      {
        a[i++] = n%10;
        n = n/10;
    }
     for(i=0;i<3;i++)
        sum += a[i]*a[i]*a[i];
      printf("%d",sum);
    return 0;
}