C# C:在for循环中求和

C# C:在for循环中求和,c#,C#,问题是: 编写一个程序,从屏幕上读取两个整数min和max,并输出minincluding和maxnotinclude之间的所有整数平方和。如果最小值大于最大值,程序应输出最小值小于最大值!。例如: >4 >9 190 (= 4² + 5² + 6² + 7² + 8²) >14 >3 min should be smaller than max! 我的代码: using System; namespace ForLoops { class SumOfSqu

问题是:

编写一个程序,从屏幕上读取两个整数min和max,并输出minincluding和maxnotinclude之间的所有整数平方和。如果最小值大于最大值,程序应输出最小值小于最大值!。例如:

>4
>9
190 (= 4² + 5² + 6² + 7² + 8²)

>14
>3
min should be smaller than max!
我的代码:

using System;

namespace ForLoops
{
    class SumOfSquares
    {
        static void Main(string[] args)
        {


        int sum = 0;
        int min = int.Parse(Console.ReadLine());
        int max = int.Parse(Console.ReadLine());
        for (int i = min; i < max; i = i++)
        {
             sum = i * i; 



            }
            Console.WriteLine(sum);

        }
    }
}

我一直得到68分,而我应该得到190分。

您的代码中有两个缺陷:

i++递增i,但返回上一个值。因此,通过i=i++,您永远不会增加i,因为您总是按照增量之前的方式重新分配值。这将导致一个无限循环。 您没有对产品进行汇总,只分配了sum=i*i;的单个产品;。您需要使用sum+=i*i;来添加它们;。 因此,您的最终循环可能如下所示:

  int sum = 0;
  for (int i = min; i < max; i++)
      sum += i * i; 
Linq是一种替代方法,可以消除显式循环,让.net为您完成工作:

  using System.Linq;

  ... 

  int min = 4;
  int max = 9;

  int sum = Enumerable
    .Range(min, max - min) // from min to max (not included)
    .Sum(x => x * x);      // sum up squares

因此,答案是您将其设置为For循环语句,这样您就可以得到这两个示例。同时回答

        int min = int.Parse(Console.ReadLine());
        int max = int.Parse(Console.ReadLine());

        if(min > max)
        {
            Console.WriteLine("min should be smaller than max!");
        }
        else
        {
            int sum = 0;
            for(int i = min; i < max; i++)
            {
                sum = sum + i*i;
            }
            
            Console.WriteLine(sum);
        }

总和+=i*i;用i++替换i=i++你不能得到68,你应该得到64。用i=i++这应该是一个无限循环这个问题不需要循环:max-;res=2*max*max*max+3*max*max+max-2*min*min*min-3*min*min-min/6为什么使用+=?我是一个初学者,刚刚使用在线corse for freeit学习,为什么要使用加号或等号运算?@MarilynLacey它不是加号或euqal,它是sum=sum+i*i的简短版本;