Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 19.01.2016
Сообщений: 1

Найти среднее арифметическое значение массива

19.01.2016, 21:39. Показов 2831. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ввести массив А(N). Найти среднее арифметическое значение массива. Минимальный элемент массива заменить на среднее арифметическое. Вывести преобразованный массив.

Может ли кто написать код?
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.01.2016, 21:39
Ответы с готовыми решениями:

Найти среднее арифметическое значение элементов массива
#include <iostream> using namespace std; int shet(int *m, int n) { int x,sum=0; cout<<"vvedite elementi:"<<endl; for(int...

Найти среднее арифметическое значение четных элементов массива
Не все тесты проходит, где ошибка? Дан линейный массив на N элементов. Выполнить циклический сдвиг всех его элементов влево до тех...

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

6
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
19.01.2016, 21:45
Лучший ответ Сообщение было отмечено gru74ik как решение

Решение

MiracleK,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
    int n, sum = 0, min = 0;
    cin >> n;
    int* a = new int[n];
    for( int i = 0; i < n; i++ ) {
        cin >> a[i];
        if( a[min] > a[i] ) min = i;
        sum += a[i];
    }
    a[min] = sum/n;
    for( int i = 0; i < n; i++ ) cout << a[i] << " ";
    cout << endl;
    cin.get();
    return 0;
}
0
Хитрая блондиночка $)
 Аватар для Hikari
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
19.01.2016, 21:47
Могу предложить такое наполнение для программы:
C++
1
2
3
4
5
6
7
8
const int n=5;
double a[n],avg=0; int i,min=0;
for(i=0;i<n;i++){
 cin>>a[i]; avg+=a[i]; min=(a[i]<a[min])?i:min;
}
a[min]=avg/n; 
for(i=0;i<n;i++) cout<<a[i]<<'\t';
cin.get();
0
24 / 24 / 7
Регистрация: 25.04.2013
Сообщений: 195
20.01.2016, 00:07
вот из-за таких просьб у НАС сдают зачеты и получаются криворукие программисты менеджеры, которые даже и не учатся. печально печально. вы еще спросите он проходили выделения памяти для массива в условии этого не было!

Добавлено через 5 минут
хотя если такой код показать преподу надо ему объяснять почему это сделано так. и а не иначе.
0
Модератор
Эксперт CЭксперт С++
 Аватар для sourcerer
5288 / 2376 / 342
Регистрация: 20.02.2013
Сообщений: 5,773
Записей в блоге: 20
20.01.2016, 09:08
Hikari, окажите любезность, прочитайте, пожалуйста:

Кликните здесь для просмотра всего текста

Стив Макконнелл "Совершенный код" (31 глава, стр. 742)

Размещение одного оператора на строке

Современные языки, такие как C++ и Java, позволяют располагать несколько операторов на одной строке. Однако когда дело касается этого вопроса, мощь свободного форматирования оборачивается палкой о двух концах. Следующая строка содержит несколько выражений, которые, с точки зрения логики, вполне могут располагаться в отдельных строках:
C++
1
i = 0; j = 0; k = 0; DestroyBadLoopNames( i, j, k );
Аргументом в защиту размещения нескольких выражений на одной строке может служить факт, что в этом случае требуется меньшее число строк экранного пространства или бумаги для распечатки, что позволяет одновременно видеть больший объем кода. Это также позволяет сгруппировать взаимосвязанные выражения, а некоторые программисты даже полагают, что так они подсказывают компилятору, как можно оптимизировать код.
Все так, но основания для самоограничения, требующие оставлять не более одного оператора в строке, гораздо серьезней.
  • Размещение каждого оператора на отдельной строке дает точное представление о сложности программы. При этом не скрывается сложность из-за того, что сложные операторы выглядят тривиальными. Сложные операторы и выглядят сложными, простые — простыми.
  • Размещение нескольких операторов на одной строке не помогает современным компиляторам в оптимизации. Сегодняшние оптимизирующие компиляторы не нуждаются в подсказках, сделанных с помощью форматирования (см. ниже).
  • Если операторы расположены на отдельных строках, чтение кода происходит сверху вниз, а не сверху вниз и слева направо. При поиске определенной строки у взгляда должна быть возможность придерживаться левого края кода. Он не должен просматривать каждую строку целиком только потому, что в одной строке может быть два оператора.
  • При размещении операторов на отдельных строках легко найти синтаксические ошибки, если компилятор сообщает только номера строк, где они произошли. При расположении нескольких операторов на одной строке ее номер ничего не скажет о том, какой оператор содержит ошибку.
  • При размещении операторов на отдельных строках легко выполнять пошаговую отладку кода, используя построчные отладчики. Если строка содержит несколько операторов, отладчик выполнит их все одновременно, и вам придется переключиться на ассемблерный листинг для выполнения пошаговой отладки отдельных выражений.
  • Когда строка содержит только один оператор, его легко редактировать — можно удалить или временно закомментировать всю строку. Если же на одной строке вы разместили несколько операторов, вам придется выполнять редактирование между остальными операторами.
В C++ избегайте выполнения нескольких операций в одной строке (побочные эффекты)
Побочные эффекты — это последствия выполнения некоторого выражения, проявляющиеся в дополнение к основным результатам выполнения этого выражения. Так, в C++ оператор ++, расположенный на одной строке с другими операторами, приводит к проявлению побочного эффекта. Присваивание значения переменной и применение левой части этого присваивания в условном операторе также является примером побочного эффекта.
Побочные эффекты снижают читаемость кода. Например, если n равно 4, что напечатает выражение, приведенное в листинге 31-48?

Листинг 31-48. Пример непредсказуемого побочного эффекта (C++)
C++
1
PrintMessage( ++n, n + 2 );
4 и 6? Или 5 и 7? А может, 5 и 6? Правильный ответ: «Ни то, ни другое и не третье». Первый аргумент —++n — равен 5. Но язык C++ не определяет порядок вычисления условий выражения или аргументов функции. Поэтому компилятор может вычислить второй аргумент, n + 2, либо до, либо после первого аргумента, и результат может быть равен 6 или 7 в зависимости от компилятора. В листинге 31-49 показано, как переписать это выражение, чтобы прояснить свои намерения:

Листинг 31-49. Пример избавления от непредсказуемого побочного эффекта (C++)
C++
1
2
++n;
PrintMessage( n, n + 2 );
Если вы все еще не совсем уверены в том, что побочные эффекты надо выносить в отдельные строки, попробуйте понять, что делает функция, приводимая в листинге 31-50:

Листинг 31-50. Пример слишком большого количества операции в строке (C)
C
1
2
3
4
strcpy( char * t, char * s ) {
    while ( *++t = *++s )
;
}
Некоторые опытные программисты не видят сложности в этом примере, потому что эта функция им знакома. Они смотрят на нее и говорят: «Это функция strcpy()». Однако в нашем случае это не совсем strcpy(). Она содержит ошибку. Если вы сказали «Это strcpy()», увидев данный код, вы узнали код, а не прочитали его. В такую же ситуацию вы попадаете при отладке программы: код, на который вы не обратили внимания, потому что «узнали», а не прочли его, может содержать ошибку, поиск которой займет гораздо больше времени, чем она этого заслуживает.
Фрагмент, показанный в листинге 31-51, функционально идентичен первому варианту и гораздо удобней для чтения:

Листинг 31-51. Пример читаемого количества операций в каждой строке (C)
C
1
2
3
4
5
6
7
8
strcpy( char * t, char * s ) {
    do {
        ++t;
        ++s;
        *t = *s;
    }
    while ( *t != ‘\0);
}
В этом переформатированном коде ошибка очевидна. Конечно, t и s инкрементируются до того, как *s будет скопирована в *t. Первый символ пропускается.
Второй пример выглядит продуманней первого, хотя операции, выполняемые во втором примере, идентичны первому. Причина такого впечатления в том, что во втором варианте не скрывается сложность выполняемых действий.
Рост производительности также не оправдывает размещения нескольких операций на одной строке. Поскольку обе функции strcpy() логически эквивалентны, можно ожидать, что компилятор сгенерирует для них идентичный код. Однако при профилировании обеих функций выяснилось, что для копирования 5 000 000 строк первой функции понадобилось 4,81 секунды, а второй —4,35.
В нашем случае «умная» версия показала снижение скорости на 11%, что делает ее гораздо менее умной. Результаты могут изменяться от компилятора к компилятору, но в целом они свидетельствуют о том, что пока вы не измерили прирост производительности, следует сначала стремиться к ясности и корректности, а уж затем — к производительности.
Даже если вы легко читаете выражения с побочными эффектами, пожалейте тех, кому придется разбираться с вашим кодом. Большинству программистов нужно дважды подумать, чтобы понять выражения с побочными эффектами. Позвольте им использовать мозговые клетки для осмысления более общих вопросов работы вашего кода, а не синтаксических деталей конкретного выражения.
0
20.01.2016, 09:29

Не по теме:

Цитата Сообщение от gru74ik Посмотреть сообщение
окажите любезность, прочитайте, пожалуйста
Если стиль кодирования не карается правилами форума, я останусь на своих принципах. Все таки за 15 лет свой стиль у меня выработался жестко, и отходить от него я не собираюсь.

0
20.01.2016, 12:05

Не по теме:

Hikari, позвольте поинтересоваться. Вы прочитали и Вас не убедили доводы? Или Вам хватило заголовка и Вы не стали читать?

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.01.2016, 12:05
Помогаю со студенческими работами здесь

Найти среднее арифметическое значение положительных элементов массива
Задан массив A(n),найти среднее арифметическое значение положительных элементов массива.

Найти среднее арифметическое значение положительных и отрицательных элементов массива
Задание 2 (его или третье) Дан Массив Xi, i = 1, ..., 15. Найти среднее арифметическое значение положительных и отрицательных элементов...

Массив: Найти среднее арифметическое элементов массива, имеющих нечетное значение
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от //0 до 1000. Опишите алгоритм, который находит и...

Найти среднее арифметическое всех элементов массива, имеющих нечётное значение
2) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Найдите и выводите среднее...

Найти среднее арифметическое элементов массива, значение которого меньше заданного
Найти среднее арифметическое элементов массива, значение которого меньше заданного, в каждом столбце массива. Помогите, в чем ошибка?...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек SDL3 и Box2D из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия SDL 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual. . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru