这两种有什么区别?为什么第二种会输出infinf?

#include<iostream>
using namespace std;
int main()
{
    int c;
   double sum1,sum2,d=0,e=0;
   while(cin>>c,c!=0)
  {
    
    if(c%2==0)
    {d++;
   sum1+=c;}
   else if(c%2!=0)
   {
       e++;
    sum2+=c;
   }
  }
  cout<<sum1/d<<sum2/e<<endl;
}
#include<iostream>
using namespace std;
int main()
{
    int c;
   double sum1,sum2,d=0,e=0;
   while(c!=0)
  {
    cin>>c;
    if(c%2==0)
    {d++;
   sum1+=c;}
   else if(c%2!=0)
   {
       e++;
    sum2+=c;
   }
  }
  cout<<sum1/d<<sum2/e<<endl;
}


求一系列数中的偶数平均值和技术平均值

该开始c没有赋值,默认值是0,进不了while循环,直接求sum1/d和sum2/e,而此时d和e的值都为0

img