标记找到平均水平的学生名单

时间:2014-03-13 08:42:14

标签: c# arrays

这里,当我将student1的四个科目的平均值相加时,并且当我继续学习2时,他的平均值将被添加到student1。为什么不计算每个学生的单独平均值?请帮忙。

 using System;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;

 namespace ConsoleApplication3
 {
     class stud
     {
         static void Main (string[] args)
         {
             double[,] studentavg = new double[3, 4];
             double total = 0;
             int ch = 0;
             int i, j;

             while (ch == 0)
             {
                 for (i = 0; i < studentavg.GetLength(0); i++)
                 {
                     Console.WriteLine("Enter mark of student : {0}", i + 1);

                     for (j = 0; j < studentavg.GetLength(1); j++)
                     {
                         Console.WriteLine("Enter mark : {0}", j + 1);
                         studentavg[i, j] = Convert.ToDouble(Console.ReadLine());
                         total += studentavg[i, j];
                     }
                     Console.WriteLine("Average is: {0}", (total / studentavg.GetLength(1)));
                     Console.Write("Enter 1 for exit OR 0 for continue: ");
                     ch = Convert.ToInt16(Console.ReadLine());
                 }
             }
             Console.ReadLine();
         }
     }
 }

2 个答案:

答案 0 :(得分:0)

您永远不会在学生之间将total重置为0。尝试添加

total = 0

之后

ch = Convert.ToInt16(Console.ReadLine());

答案 1 :(得分:0)

你放了这条线 “double total = 0;” 在while循环之外。 你不需要每次都将它初始化为零吗?

你也应该避免 “Convert.ToInt16” 并替换它 “if(!int.TryParse(Console.ReadLine(),out ch)){error,re-enter number} else all ok” 尽量避免使用预定义的整数。从字符串到数字的转换总是会失败。