C# C:在for循环中求和
问题是: 编写一个程序,从屏幕上读取两个整数min和max,并输出minincluding和maxnotinclude之间的所有整数平方和。如果最小值大于最大值,程序应输出最小值小于最大值!。例如: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
>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的简短版本;