Форум программистов, компьютерный форум CyberForum.ru

Посчитать среднее арифметическое каждых третьих значений массива - C++

Восстановить пароль Регистрация
 
Новичок_в_С/С++
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 6
25.12.2011, 01:34     Посчитать среднее арифметическое каждых третьих значений массива #1
Прошу помощи у людей, знающих С/С++

Нужно в одномерном массиве с рандомными значениями и заранее заданным размером посчитать среднее арифметическое каждых третьих значений и вывести его. На выходе должно получиться число.

Заранее спасибо.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
25.12.2011, 01:34     Посчитать среднее арифметическое каждых третьих значений массива
Посмотрите здесь:

C++ Определить среднее арифметическое наибольшего и наименьшего значений массива
Для каждого массива определить среднее арифметическое наибольшего и наименьшего значений C++
Определите среднее арифметическое всех значений элементов массива C++
C++ Рекурсивная функция. Посчитать среднее арифметическое элементов массива
Посчитать среднее арифметическое элементов массива с помощью функции C++
Посчитать среднее арифметическое чисел C++
Посчитать и вывести среднее арифметическое элементов массива, не превышающих B C++
C++ Найти среднее арифметическое минимального и максимального значений массива

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
25.12.2011, 01:40     Посчитать среднее арифметическое каждых третьих значений массива #2
Есть массив mas в нем N элементов, тогда
C++
1
2
3
4
5
6
double mid = 0;
// Считаем сумму этих элементов
for (int i = 2; i < N; i += 3) 
  mid += mas[i];
// Делим на кол-во
mid /= N / 3; // N / 3 - целое кол-во раз 3 вмещается в N
Добавлено через 47 секунд
mid - искомое.
Новичок_в_С/С++
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 6
25.12.2011, 02:22  [ТС]     Посчитать среднее арифметическое каждых третьих значений массива #3
Написал что-то

Компилятор не ругается, но выдает не те значения, которые ввел.
И среднее арифметическое неправильное

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include "stdlib.h"
#include "malloc.h"
#include "stdio.h"
 
int main()
{
int *a;
int i, n;
double mid = 0;
printf("Enter n: ");
scanf("%d",&n);
a=(int*) malloc(n*sizeof(int));
    if (n<=1)
    printf("ERROR!!!\n");
else
for (i=0;i<n;i++)
{
printf("Enter a[%d]: ",i);
scanf("%d",&(a[i]));
}
printf("\n");
for (i=0;i<n;i++)
{
printf("%d  ",i,a[i]);
}
for (int i = 2; i < n; i += 3) 
{
  mid += a[i];
mid /= n / 3;
}
printf("%.2f",mid);
system ("pause");
return 0;
}
darkknight2008
 Аватар для darkknight2008
61 / 61 / 6
Регистрация: 16.10.2011
Сообщений: 200
25.12.2011, 02:40     Посчитать среднее арифметическое каждых третьих значений массива #4
C
1
printf("%d  ",i,a[i]);
Замени на:
C
1
printf("%d  ",a[i]);
Добавлено через 4 минуты
mid /= n / 3;
Это надо написать вне цикла for, у тебя он каким-то хреном залез внутрь.

Добавлено через 2 минуты
Также ты память выделяешь при помощи malloc, но в конце программы ее не освобождаешь при помощи free.

Добавлено через 1 минуту
Проверку правильности n надо проводить до! выделения памяти. Я не представляю как ты собираешься выделять память например на -5 * sizeof(int) байт...
Новичок_в_С/С++
0 / 0 / 0
Регистрация: 25.12.2011
Сообщений: 6
25.12.2011, 11:44  [ТС]     Посчитать среднее арифметическое каждых третьих значений массива #5
Спасибо, получилось!



C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include "stdlib.h"
#include "malloc.h"
#include "stdio.h"
 
int main()
{
int *a;
int i, n;
double mid = 0;
printf("Enter n: ");
scanf("%d",&n);
if (n<=1)
    printf("ERROR!!!\n");
else
a=(int*) malloc(n*sizeof(int));
for (i=0;i<n;i++)
{
printf("Enter a[%d]: ",i);
scanf("%d",&(a[i]));
}
printf("\n");
for (i=0;i<n;i++)
{
printf("%d  ",a[i]);
}
for (int i = 2; i < n; i += 3) 
{
  mid += a[i];
}
mid /= n / 3;
printf("\n%.2f",mid);
free(a);
system ("pause");
return 0;
}
Yandex
Объявления
25.12.2011, 11:44     Посчитать среднее арифметическое каждых третьих значений массива
Ответ Создать тему
Опции темы

Текущее время: 20:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru