使用数组,认为我没有正确使用for循环

时间:2015-11-12 23:04:29

标签: c# arrays

我只在一段时间内使用Arrays,而且我发现它们比使用Lists更难。对于作业,我编写了一个表格,从文本框中输入并输出计数,平均值和总计。代码如下:

int [] intScoreTotalArray = new int[20];      
decimal decScoreAverage = 0m;
decimal decScoreTotal = 0m;
decimal decScoreCount = 0m;

private void btnAdd_Click(object sender, EventArgs e)
{
    intScoreTotalArray[0] = Convert.ToInt32(txtScore.Text);
    for(int i = 0; i < intScoreTotalArray.Length; i++)
    {
        decScoreTotal += intScoreTotalArray[i];
    }

    decScoreCount++;  
    decScoreAverage = decScoreTotal / decScoreCount;

但是我还需要在stong的消息框中显示它,它只给我最后一个值。我的理论是,问题在于两个代码框,或者在初始for循环中。

private void btnDisplayScores_Click(object sender, EventArgs e)
{
    decimal decScore = Convert.ToDecimal(txtScore.Text);

    string strScoreTotal = " ";
    for (int i = 0; i < intScoreTotalArray[i]; i++)
    {
        strScoreTotal += decScore.ToString() + "\n";
    }
    Array.Sort(intScoreTotalArray);
    MessageBox.Show(strScoreTotal + "\n","Score Array");

么?

1 个答案:

答案 0 :(得分:0)

为什么使用数组来确定数字列表的计数,平均值和总数?它们不是动态项目列表的最佳结构,因为在初始化时必须声明数组的大小。你应该使用一个列表来完成这项任务。

至于为什么你的代码没有表现:

intScoreTotalArray[0] = Convert.ToInt32(txtScore.Text);

您只是在这里指定数组中的第一项。

您似乎正在使用decScoreCount来跟踪数组中的项目数。我想你想这样做:

intScoreTotalArray[(int) decScoreCount] = Convert.ToInt32(txtScore.Text);