2015-03-28 3 views
-6

Язык: C#Нахождение среднего арифметического массива: C#

У меня есть массив чисел, которые пользователь вошел, и я хочу, чтобы найти среднее арифметическое массива.

Я посмотрел пару случаев похожих, но не мог найти ничего, что я искал ... Во всяком случае, вот код:

  Console.WriteLine("\n How many numbers do you want to average? \n"); 

      int nNumtoAvg = Convert.ToInt32(Console.ReadLine()); 


      int[] nListToAverage = new int[nNumtoAvg]; 



      for (int i = 0; i < nNumtoAvg; i++) 
      { 

       Console.WriteLine("Enter whole number #" + (i + 1) + ": "); 

       string sVal = Console.ReadLine(); 

       int nValue = Convert.ToInt32(sVal); 

       nListToAverage[i] = nValue; 

      } 

Теперь, что бы я сделал, чтобы добавить все числа в массиве вместе, а затем разделите это на array.Length? Заранее спасибо: D

+0

Да, вы добавляете их и разделяете по длине. Точно так же, как вы делаете это вручную на листе бумаги. – zerkms

+1

'Я посмотрел на пару похожих случаев, но не мог найти ничего, что искал. Вы первый, кто решил эту проблему во всей компьютерной истории :) – EZI

+0

Да, но как бы я их добавил, это то, что я 'm интересно ... – Trumpkin

ответ

0

Вы могли бы сделать это много раз, но я сделал бы следующее после цикла for.

int sum = 0; 
for (int i = 0; i < nNumtoAvg; i++) 
    sum += nListToAverage[i]; 

int result = sum/nNumtoAvg; // result now has the average of those numbers. 

Вы также могли бы сделать это в течение цикла у вас уже есть, но оно не будет действительно сделать разницу в сложности, если вы не очень много чисел для ввода.

0

Если вам нужен Int как результат, как насчет:

int average = Convert.ToInt32(nListToAverage.Average()); 

В противном случае вы получите более точный ответ с двойным:

double average = nListToAverage.Average(); 

Если вы потребность добавить все пункты сначала, вы также можете сделать:

int average = nListToAverage.Sum()/nListToAverage.Length; 

Или старая школа, шоу-ваш- рабочий путь:

int sum = 0; 
int average = 0; 
int numItems = nListToAverage.Length; 

if (numItems > 0) 
{ 
    for(int i = 0; i < numItems; i++) 
    { 
     sum += nListToAverage[i]; 
    } 

    average = sum/numItems; 
} 
Смежные вопросы