使用数组时,我想我';我没有正确使用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");
建议?
为什么要使用数组来确定数字列表的计数、平均值和总数?它们不是动态项目列表的最佳结构,因为初始化数组时必须声明数组的大小。您应该使用列表来执行此任务。
至于你的代码为什么不正常:
intScoreTotalArray[0] = Convert.ToInt32(txtScore.Text);
您在此处仅分配数组中的第一个项。
看起来您正在使用decScoreCount来跟踪数组中的项目数。我想你想这样做:
intScoreTotalArray[(int) decScoreCount] = Convert.ToInt32(txtScore.Text);