C#在循环中添加动态变量

时间:2014-03-10 17:35:25

标签: c# variables dynamic

这是一个非常新秀的问题。 这是我的代码

double jury;
jury = double.Parse(Console.ReadLine());
for (int i = 0; i < jury ; i++)
{
    Console.ReadLine();
}

如何在循环内定义输入,以便我可以使用来自附加输入的输入数据进行数学计算。 这是一个投票系统,第一个变量是陪审团计数 - 每个陪审团成员投票给1-10。这个想法是陪审团的动态从1到100,000。欢迎任何想法。

更多:这是一个想法。

- &GT;当你有3个陪审团成员时

- &GT;你在第一行输入3

- &GT;您的评审团投票给候选人(数字1到10)

,您将获得3个新输入

- &GT;在这种情况下,投票是1,3,3

这个想法是解析所有这些信息并输出胜者,在我们的例子中是“3”。

3 个答案:

答案 0 :(得分:2)

您可以使用List<T>来存储投票;恕我直言int看起来比任务中的Double更好

Console.WriteLine("Enter number of jurors, please"); 

int jury;

if (!int.TryParse(Console.ReadLine(), out jury)) { 
  Console.WriteLine("Incorrect jury number format");

  return; // <- I'd exit on the first error occured; you may adopt different policy
}
else if ((jury < 1) || (jury > 100000)) {
  Console.WriteLine("Jury should be in range [1..100000]");

  return;
}

var List<int> = new List<int>();

for (int i = 0; i < jury; ++i) {
  int vote;

  Console.WriteLine("Enter next vote, please"); 

  if (!int.TryParse(Console.ReadLine(), out vote)) {
    Console.WriteLine("Incorrect vote format");

    return;
  }
  else if ((vote < 1) || (vote > 10)) {
    Console.WriteLine("Each vote should be in range [1..10]");

    return;
  }

  votes.Add(vote);
} 

答案 1 :(得分:1)

此代码提示输入许多陪审员并验证输入。然后,它会提示每位陪审员的投票,验证投票输入。

const int minimumVote = 1;
const int maximumVote = 10;
int jurorCount;

do
{
    Console.Write("Enter the number of jurors: ");
} while (!Int32.TryParse(Console.ReadLine(), out jurorCount) || jurorCount < 0);

var votes = new List<int>();

for (int i = 0; i < jurorCount; i++)
{
    int vote;

    do
    {
        Console.Write("Enter juror #{0}'s vote ({1}-{2}): ", i + 1, minimumVote, maximumVote);
    } while (!Int32.TryParse(Console.ReadLine(), out vote) || vote < minimumVote || vote > maximumVote);

    votes.Add(vote);
}

答案 2 :(得分:0)

使用列表或数组

var values = new List<double>();
for (int i = 0; i < jury; i++)
{
    double current;
    if (double.TryParse(Console.ReadLine(), out current))
    {
       values.Add(current);
    }
    else
      i--;
}