2015-12-09 3 views
1

Я изучаю финал, поэтому у меня возникли проблемы с этим заданием, и я просто не понимаю, что я делаю неправильно, я надеялся, что какой-то пользователь здесь может помочь меня. Я должен написать массив, который будет усреднять компьютер, используя свойство .Length, чтобы узнать, сколько элементов в моем массиве, с циклом for (;;). Это мой код до сих пор, и он работает без чисел, которые мне нужно использовать.C# for (;;) loop and array

static double ComputeSum(int [] intArray) 
{ 
    int intsum = 0; 
    int intCounter; 

    for (intCounter=0; intCounter<intArray.Length; intCounter++) 
    { 
     intsum += intArray[intCounter]; 
    } 
    return intsum; 
} 

static double ComputeAverage(int [] intArray) 
{ 
    return (double)ComputeSum(intArray)/intArray.Length; 
} 

номера, которые мне нужно использовать, хотя все парные, и я не уверен, как это исправить.

вот число

int[] numbers = new int[9.7, 2.2, 4.3, 1.7, 5.6, 3.6, 4.5, 1.3, 4.6, 3.0]; 

если это слишком расплывчато, я могу ответить на вопросы, и я признателен за любую помощь, которую я могу получить.

+4

использовать двойные вместо Int –

+0

целочисленный массив с двойными значениями; –

+2

В чем вопрос? Почему вы думаете, что это неправильно? Скомпилирует ли это (подсказка, это не так, вы можете понять почему?)? –

ответ

3

Использование double в коде:

static void Main(string[] args) 
{ 
    double[] numbers = new[] { 9.7, 2.2, 4.3, 1.7, 5.6, 3.6, 4.5, 1.3, 4.6, 3.0 }; 
    double average = ComputeAverage(numbers); 
} 

static double ComputeAverage(double[] array) 
{ 
    return ComputeSum(array)/array.Length; 
} 

static double ComputeSum(double[] array) 
{ 
    double sum = 0; 
    int intCounter; 

    for (intCounter = 0; intCounter < array.Length; intCounter++) 
    { 
     sum += array[intCounter]; 
    } 
    return sum; 
} 
+0

Прекрасно ... Смотри красиво! –

+1

@ Николас прав, оба знаменателя должны быть в двойном типе данных https://social.msdn.microsoft.com/forums/vstudio/en-US/fbca9a14-517f-4daf-b392-144dde0b080a/dividing-double- by-int –

+2

Спасибо вам за помощь! Я прекрасно понимаю, что я сделал неправильно, также нужно изменить на double [] moreNumbers = new double [] {9.7, 2.2, 4.3, 1.7, 5.6, 3.6, 4.5, 1.3, 4.6, 3.0}; – RegalStegal

0

Вы просто можете сделать то же самое со следующим способом:

static double ComputeAverage(double[] doubleArray) 
{ 
    return (double)doubleArray.Sum()/doubleArray.Length; 
} 

и вход будет:

double[] numbers = new double[9.7, 2.2, 4.3, 1.7, 5.6, 3.6, 4.5, 1.3, 4.6, 3.0]; 
0
static double ComputeAverage(double[] doubleArray) 
{ 
    for (;;) return doubleArray.Sum()/doubleArray.Length; 
} 
  • с использованием свойства .length ✓
  • с для (;;) цикла ✓
  • получать удовольствие ✓