double sum=0;
for(int i=0;i<83;i++)
{
   sum=sum+(1d/i);
}
Console.WriteLine (sum);
请问这个错在哪里?怎么输出的是无穷大呢

解决方案 »

  1.   

    呵呵 你是从i=0的时候开始的循环呢 可以改成 for(int i=1;i<=83,i++)
      

  2.   

    public static void Main(string [] args)
    {
    int i=0;int m=0;
    for(double sum=0;sum<=5.0;i++,sum+=1d/i)
    {
    m=i;
    }
    Console.WriteLine(m);//82
    }
    public static void Main(string [] args)
    {
    int n=0;
    double sum=0;
    while(sum<=5.0)
    {
    n++;
    sum+=1d/n;
    }
    Console.WriteLine (n);//83
    }
    是啊,因为你给的程序和那边给的程序输出的结果不一样
      

  3.   

    最后赋值不要放在循环里面
    for(double sum=0;sum<=5.0;i++,sum+=1d/i);
    m=i;
      

  4.   

    for(double sum=0;sum<=5.0;i++,sum+=1d/i)
    Console.WriteLine(i);//82