Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Айбек
0 / 0 / 0
Регистрация: 06.07.2012
Сообщений: 11
#1

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

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

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

http://www.cyberforum.ru/cpp-beginners/thread1201428.html

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

Среднее арифметическое всех элементов массива
#include <iostream> #include <math.h> using namespace std; void...

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

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

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

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

11
grain
0 / 0 / 1
Регистрация: 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ил
534 / 439 / 162
Регистрация: 10.12.2009
Сообщений: 1,857
20.07.2012, 14:32 #3
grain,
C++
1
double sred;
0
Troll_Face
603 / 403 / 8
Регистрация: 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
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:40 #5
Fatal Error, трудно, конечно, это оптимизацией назвать (так как, по сути, алгоритм не оптимизирован, да и что там оптимизировать), но будь по вашему. Только среднее правильно вычислите, Mиxaил, правильно намекает. При этом где у вас защита "от дурака". А если n=0.
0
Troll_Face
603 / 403 / 8
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 15:55 #6
Цитата Сообщение от Thinker Посмотреть сообщение
трудно, конечно, это оптимизацией назвать
по процессорному времени это нехилая оптимизация, поверьте мне

Добавлено через 4 минуты
а если предположить что компилятор умный и не будет обращаться к памяти два раза в этом месте
C++
1
2
cin>>a[i];
        s+=a[i];
то это вообще победа!!!
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 15:59 #7
Цитата Сообщение от Fatal Error Посмотреть сообщение
по процессорному времени это нехилая оптимизация, поверьте мне
если в первом цикле присутствует cin, а во втором - нет и вы все собрали вместе, то из-за низкой скорости cin по сравнению с вычислениями процессора, оптимизации нет никакой Все упирается в то, с какой скоростью вы будете набирать данные, не более того.
0
Troll_Face
603 / 403 / 8
Регистрация: 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
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:19 #9
Fatal Error, желаю вам удачно поэкспериментировать, тысяч, эдак, десять с запуском программы и ввода с помощью cin массива, состоящего не менее чем из 100 элементов. Отпишитесь за какое минимальное время ваша программа проработала
А еще лучше, тоже самое проделайте с программой из поста 2 и сравните время.
Ну ладно, шутки - шутками, а тема слишком банальна, можно закрывать.
0
Troll_Face
603 / 403 / 8
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:20 #10
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
0
Thinker
Эксперт С++
4232 / 2206 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
20.07.2012, 16:23 #11
Цитата Сообщение от Fatal Error Посмотреть сообщение
Thinker, вы говорите не в тему, я не о скорости ввода вам толкую, а о скорости работы программы
я вас прекрасно понимаю, просто, обычно, алгоритмы другие оптимизируют, а это слишком простой линейный алгоритм.
0
Troll_Face
603 / 403 / 8
Регистрация: 26.04.2012
Сообщений: 2,070
20.07.2012, 16:25 #12
Thinker, мое ассемблерное прошлое не дает мне спокойно смотреть на не оптимизированный по скорости и памяти код
0
20.07.2012, 16:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.07.2012, 16:25
Привет! Вот еще темы с решениями:

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

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

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

Найти среднее арифметическое всех неотрицательных элементов массива
Найти среднее арифметическое всех неотрицательных элементов массива. Помогите...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Опции темы

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