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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Айбек
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 11
#1

Определите среднее арифметическое всех значений элементов массива - C++

20.07.2012, 13:50. Просмотров 870. Ответов 11
Метки нет (Все метки)

помогите //заранее спасибо


Определите среднее арифметическое всех значений элементов массива
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2012, 13:50
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Определите среднее арифметическое всех значений элементов массива (C++):

Найти сумму всех положительных элементов массива и среднее арифметическое всех элементов - C++
Помогите написать программу: Дан массив A. Найти сумму всех положительных элементов массива и среднее арифметическое всех чисел.

Среднее арифметическое всех элементов массива - C++
#include <iostream> #include <math.h> using namespace std; void massiv(float **mas, int n, int m){ for (int i = 0;...

Вычислить среднее арифметическое всех элементов массива - C++
Вычислить среднее арифметическое всех элементов массива.

Определить среднее арифметическое всех элементов массива. - C++
Дан двумерный массив. Определить среднее арифметическое всех элементов массива.

Найти количество элементов превышающих среднее арифметическое всех элементов массива - C++
Дано одномерный массив из 15 целых чисел. Найти количество элементов превышающих среднее арифметическое всех элементов массива.

найти среднее арифметическое всех элементов массива, кроме элементов... - C++
Дан массив размера N и целые числа K и L (1 < K ≤ L ≤ N). Найти среднее арифметическое всех элементов массива, кроме элементов с номе-рами...

11
grain
0 / 0 / 0
Регистрация: 03.07.2012
Сообщений: 56
20.07.2012, 14:14 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream.h>
 
void main ()
{
    int a[100], i, s=0, sred, n;
    cout<<"ввести количество элементов массива:"<<endl;
    cin>>n;
    cout<<"ввести элементы массива:"<<endl;
    for (i=0; i<n; i++)
        cin>>a[i];
 
    for (i=0; i<n; i++)
        s+=a[i];
 
    sred=s/n;
 
    cout<<"среднее арифметическое: "<<sred<<endl;
}
0
Mиxaил
533 / 438 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
20.07.2012, 14:32 #3
grain,
C++
1
double sred;
0
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:39 #4
grain, Mиxaил, оптимизацию никто не отменял
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream.h>
 
void main ()
{
    int a[100], i, s=0, sred, n;
    cout<<"ввести количество элементов массива:"<<endl;
    cin>>n;
    cout<<"ввести элементы массива:"<<endl;
    for (i=0; i<n; i++)
    {    
        cin>>a[i];
        s+=a[i];
    } 
    sred=s/n;
 
    cout<<"среднее арифметическое: "<<sred<<endl;
}
Добавлено через 1 минуту
Цитата Сообщение от Айбек Посмотреть сообщение
Определите среднее арифметическое всех значений элементов массива
очень дебильный вопрос
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:40 #5
Fatal Error, трудно, конечно, это оптимизацией назвать (так как, по сути, алгоритм не оптимизирован, да и что там оптимизировать), но будь по вашему. Только среднее правильно вычислите, Mиxaил, правильно намекает. При этом где у вас защита "от дурака". А если n=0.
0
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:55 #6
Цитата Сообщение от Thinker Посмотреть сообщение
трудно, конечно, это оптимизацией назвать
по процессорному времени это нехилая оптимизация, поверьте мне

Добавлено через 4 минуты
а если предположить что компилятор умный и не будет обращаться к памяти два раза в этом месте
C++
1
2
cin>>a[i];
        s+=a[i];
то это вообще победа!!!
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:59 #7
Цитата Сообщение от Fatal Error Посмотреть сообщение
по процессорному времени это нехилая оптимизация, поверьте мне
если в первом цикле присутствует cin, а во втором - нет и вы все собрали вместе, то из-за низкой скорости cin по сравнению с вычислениями процессора, оптимизации нет никакой Все упирается в то, с какой скоростью вы будете набирать данные, не более того.
0
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:15 #8
Цитата Сообщение от Thinker Посмотреть сообщение
из-за низкой скорости cin по сравнению с вычислениями процессора, оптимизации нет никакой
ок, попробую растолковать: во втором цикле процессору придется совершать переход на начало цикла для того, чтобы просуммировать все элементы массива, в общем случае по первому коду нужно совершить 2n прыжков, в моем коде только n раз... второй пункт: если вы знакомы с ассемблером, то вы должны знать, что в основном все результаты деятельности функций возвращаются в регистр EAX. в коде grain, два раза обращаться к памяти (для того чтобы положить введенное число в массив и во втором цикле чтобы его взять), я предположил что компилятор умный и он будет прибавлять к сумме не значения из массива,а из регистра, что в разы быстрее. сравните приблизительный машинный код grain и мой!
Assembler
1
2
3
4
5
6
7
8
9
10
11
mov ecx, n
@1:
cin (предположим ввели число, результат в eax)
mov a[index], eax
inc index
loop @1
mov index, 0
mov ecx, n
@2:
mov eax, a[index]
add s, eax
мой код:
Assembler
1
2
3
4
5
6
7
mov ecx, n
@1:
cin (предположим ввели число, результат в eax)
mov mov a[index], eax
add s, eax
inc index
loop @1
если учесть что обращение к памяти - дело долгое, лишние прыжки - дело глупое, то мой код очень оптимален!!!
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:19 #9
Fatal Error, желаю вам удачно поэкспериментировать, тысяч, эдак, десять с запуском программы и ввода с помощью cin массива, состоящего не менее чем из 100 элементов. Отпишитесь за какое минимальное время ваша программа проработала
А еще лучше, тоже самое проделайте с программой из поста 2 и сравните время.
Ну ладно, шутки - шутками, а тема слишком банальна, можно закрывать.
0
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:20 #10
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
0
Thinker
Эксперт С++
4226 / 2200 / 150
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:23 #11
Цитата Сообщение от Fatal Error Посмотреть сообщение
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
я вас прекрасно понимаю, просто, обычно, алгоритмы другие оптимизируют, а это слишком простой линейный алгоритм.
0
Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:25 #12
Thinker, мое ассемблерное прошлое не дает мне спокойно смотреть на не оптимизированный по скорости и памяти код
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 16:25
Привет! Вот еще темы с ответами:

Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов - C++
Написать программу, вычисляющую среднее арифметическое всех элементов массива из 200 элементов. Если в массиве есть элемент, равный...

Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива - C++
Помогите написать код, пожалуйста Ввести c клавиатуры массив из 5 элементов, найти среднее арифметическое всех элементов массива

Вычислить среднее арифметическое всех отрицательных элементов массива - C++
Даны вещественные массивы А, F. Для каждого массива определить: среднее арифметическое отрицательных элементов, среднее арифметическое...

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


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

Или воспользуйтесь поиском по форуму:
12
Yandex
Объявления
20.07.2012, 16:25
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru