using System;
using System.Linq;
namespace PleaseHelpMe
{
public class SumAndAverage
{
public static void Main(string[] args)
{
var data = Enumerable.Range(1, 100);
Console.WriteLine("The sum is "+ data.Sum());
Console.WriteLine("The average is " + data.Average());
Console.ReadKey();
}
}
}
我需要将其更改为Do-While循环,预期输出总和为5050,平均值为50。
我认为,do
/ while
循环在这里有点奇怪。更好的选择是for
循环。
无论如何,你需要跟踪count
和当前的迭代i
:
int i = 1;
int count = 100;
您还需要存储sum
。对于大值(总和> 2147483647),您应该使用long
:
int sum = 0;
现在你需要增加i
直到它匹配count
:
do
{
sum += i; // add current value of i to sum.
}
while (i++ < count);
请注意,我在这里使用了i++
,因为它在增加之前返回i
的值,而++i
在增加后返回i
的值。如果使用++i
,你必须将它与<=
进行比较。
最后计算平均值并输出总和:
double average = sum / (double)count;
Console.WriteLine("The sum is " + sum);
Console.WriteLine("The average is " + average);
Console.ReadKey();
我认为for
循环更适合这一点(虽然我理解如果它是一个任务你可能必须跳过使用do
/ while
的篮球):
int sum = 0;
int count = 100;
for (int i = 1; i <= count; ++i)
{
sum += i;
}
double average = sum / (double)count;
Console.WriteLine("The sum is " + sum);
Console.WriteLine("The average is " + average);
Console.ReadKey();
int sum = 0;
decimal avg = 0;
do
{
sum += n;
avg = sum/n;
n++;
} while (n <= 100);
这应该有效。