使用数组时,我想我';我没有正确使用for循环

本文关键字:循环 for 数组 | 更新日期: 2023-09-27 18:21:53

我使用数组的时间很短,发现它们比使用列表要困难得多。对于一个作业,我写了一个表单,从文本框中输入并输出计数、平均值和总数。代码如下:

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;

但我也需要把它显示在一个消息框里,它只给我最后一个值。我的理论是,问题出在代码的两个框中,或者出在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");

建议?

使用数组时,我想我';我没有正确使用for循环

为什么要使用数组来确定数字列表的计数、平均值和总数?它们不是动态项目列表的最佳结构,因为初始化数组时必须声明数组的大小。您应该使用列表来执行此任务。

至于你的代码为什么不正常:

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

您在此处仅分配数组中的第一个项。

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

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