Ю4.3

Задача:

Центрирование массива. От каждого из заданных чисел x1, x2,…, xn отнять их среднее арифметическое.

xср= 1/m

E от m при i=1 (x1); xi= xi-xср; i=1,2,…, m

Результаты разместить на месте исходных данных.

Тесты:

Введите M (количество элементов в массиве) Введите первое число Введите следующее число Результат Вывод
2 2 5 -1

2

Тест пройден
2 1 2 0

1

Тест пройден
2 0 2 -1

1

Тест пройден
2 0 3 -1

2

Тест пройден
2 0 1 0

1

Тест пройден

Код:

 

Решение:

объявляем массив m;

int i; // счетчик цикла

int arr[100]; //массив не более 100 элементов

int sum = 0; // сумма чисел массива

cout << «Введите первое число: »

Циклы и условия:

for (i = 2; i <= m; i++) // цикл

for (int i = 1; i <=m; ++i)

cout << arr[i] — (sum / m) << » «;

Код в ideone: http://ideone.com/vB6l0Y

Related Images:

3 thoughts on “Ю4.3

  1. У элементов массива должен быть тип double, а не int . Так как они не обязательно целые, к тому же среднее арифметическое также может быть дробным. Иначе в некоторых тестах результаты будут неверными.

    • Очень ценное замечание! Даже если на мгновение предположить, что исходные данные целые, то «Результаты разместить на месте исходных данных.» — показывает что массив должен содержать вещественные значения, т.к. результат является вещественным.
      +1 балл Зелинскому

  2. Если учесть замечание Вячеслава и переделать программу, то она будет, в целом, правильная. Не совсем понятно, почему Вы отдельно выделили первый элемент массива, за что ему такая честь… И еще, если захотеть, можно придраться к строчке int arr[100]; //массив не более 100 элементов, ведь в условии не сказано, что количество элементов не более 100 (тем более, что даже 100 элементов Вы не разместите — т.к. элемент с индексом 0 не используется).

    Ну это ладно, а вот отчет:
    1) формулы не в latex
    2) в тестах все последовательности по 2 числа — нужно рассмотреть и большие последовательности, и тем не менее, как получены результаты? При помощи Вашей программы? Тогда что проверяют тесты, они просто фиксируют некоторый ответ программы. Результат нужно считать вручную (в Вашей задаче это совсем нетрудно) — и потом проверять выдала ли программа ожидаемый результат или нет.
    3) пояснение вообще непонятно о чем… «объявляем массив m;» — разве m у Вас массив. «for (i = 2; i <= m; i++) // цикл " - да как-то читатель и так видит, что это цикл, лучше бы пояснили, что в этом цикле делается. Почитайте объяснения у Ваших товарищей в принятых отчетах или в моем примере и Игоря Евгеньевича. 4) Ключевые слова у Вас не очень характеризуют задачу. Могу предположить следующие: центрирование, математическая статистика. 5) И наконец, ссылка на ideone должна быть таки да ссылкой .

Добавить комментарий