为什么这个程序报错?HDOJ上的题

#include
#include
#include

int main()
{
double m,n;
while(scanf("%2lf %2lf",&m,&n)!=EOF)
{
double s,k,c,i,a[100],b[100];

i=0;
c=0;
if(m<=n)
{

  if(m%2==1)a[i]=m;         //奇数
  else      b[i]=m;         //偶数
  ++m;
  ++i;
}
for(;i--;)
{
    c++;
    s=s+pow(a[c],2);
    k=k+pow(b[c],2);
}
printf("%d %d",s,k);

}
}

图片说明

图片说明

第一,你发的那个include 没有引入东西,二,你的那个for循环,中间是判断什么时候循环结束的

 double m,n;
    while(scanf("%2lf %2lf",&m,&n)!=EOF)
    {
        double s = 0,k = 0,a[100] = {0},b[100] = {0};
        int i=0,c=0;
        if(m<=n)
        {

            if( ((int)m) % 2 == 1)
                a[i] = m;         //奇数
            else
                b[i] = m;         //偶数
            ++m;
            ++i;
        }
        for(;i--;)
        {
            c++;
            s=s+pow(a[c],2);
            k=k+pow(b[c],2);
        }
        printf("%d %d",s,k);
    }