3 / 3 / 0
Регистрация: 13.12.2016
Сообщений: 99
1

Массив: Найти среднее арифметическое элементов массива, имеющих нечетное значение

10.06.2017, 09:22. Показов 7905. Ответов 11
Метки нет (Все метки)

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

// Комментарий:
Способы работы с динамической памятью:
а) Первый использует семейство функций malloc (free для очистки памяти) (язык C);
идентификатор = (тип_идентификатора*) malloc (sizeof(тип_идентификатора))

б) Второй использует операции new и delete
тип_данных *имя_указателя = new тип_данных;
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.06.2017, 09:22
Ответы с готовыми решениями:

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

Вычислить среднее арифметическое значение элементов массива, имеющих четные отрицательные значения
Ввести одномерный массив из n элементов. Вычислить среднее арифметическое значение элементов...

Найти сумму элементов матрицы, имеющих нечетное значение
дан двумерный массив из 20-ти элементов.Заполнить его случайным образом и найти: сумму...

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

11
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
10.06.2017, 09:43 2
2)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include<iostream>
using namespace std;
int main(){
int * mas = new int[1000];
for(int i = 0; i<1000; i++)
mas[i] = i+1;
 
int sum;
for(int i =0; i < 1000; i++)
sum +=mas[i];
 
cout<<sum/1000;
 
delete [] mas;
return 0;
}
1)
Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include <cstdlib>
using namespace std;
 
int main(){
 
int * c = (int*) malloc(1000);
if (c==NULL) exit (1);
 
for(int i = 0; i<1000; i++)
c[i] = i+1;
 
int sum;
for(int i =0; i < 1000; i++)
sum +=c[i];
 
cout<<sum/1000;
 
free(c);
 
return 0;
}
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
10.06.2017, 10:07 3
Цитата Сообщение от Antikl Посмотреть сообщение
Код
cout<<sum/1000;
Средне (-арифметическое, -геометрическое, - гармоническое, ...) даже целых чисел ... и даже 1000 - не может быть целым.
Будет выведена ерунда!
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
10.06.2017, 10:25 4
Цитата Сообщение от Olej Посмотреть сообщение
Будет выведена ерунда!
будет выведено 500 тоисть все верно
вот можно про это прочитать https://ru.wikipedia.org/wiki/... 0%BE%D0%B5

Добавлено через 1 минуту
Цитата Сообщение от Olej Посмотреть сообщение
не может быть целым
можно и целыми цыфрами и вещественными
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
10.06.2017, 11:33 5
Цитата Сообщение от Antikl Посмотреть сообщение
будет выведено 500 тоисть все верно
Да ничего не верно - это вам случайно повезло ... или просто показалось.
Будет выведено значение с потерянной дробной частью.
Цитата Сообщение от Antikl Посмотреть сообщение
вот можно про это прочитать https://ru.wikipedia.org/wiki/... 0%BE%D0%B5
Учи матчасть, а не ... "почитать"
Цитата Сообщение от Antikl Посмотреть сообщение
можно и целыми цыфрами и вещественными
И Букварь повторить: цифра!

Добавлено через 2 минуты
Цитата Сообщение от Antikl Посмотреть сообщение
будет выведено 500 тоисть все верно
C++
1
2
for(int i = 0; i<1000; i++)
   c[i] = i < 999 ? 1 : 0;
И что будем делать дальше?
0
с++
1282 / 523 / 225
Регистрация: 15.07.2015
Сообщений: 2,562
10.06.2017, 19:13 6
Цитата Сообщение от Olej Посмотреть сообщение
C++
1
2
for(int i = 0; i<1000; i++)
    c[i] = i < 999 ? 1 : 0;
ну выведет много один и что это будет не правильно

Цитата Сообщение от Olej Посмотреть сообщение
И Букварь повторить: цифра!
ну извините это не мой родной язык, а по правим форума можно только на английском языке и на русском

Цитата Сообщение от Olej Посмотреть сообщение
Да ничего не верно - это вам случайно повезло
в задании указаном TC сказанно
Цитата Сообщение от Nikita123123 Посмотреть сообщение
Опишите алгоритм, который находит и выводит с среднее арифметическое всех элементов массива
тоисть что бы узнать среднее арифметическое нужно все цифры сложить и поделить на их количество
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
10.06.2017, 22:39 7
Цитата Сообщение от Antikl Посмотреть сообщение
ну выведет много один и что это будет не правильно
Да ничего подобного! - у вас "среднее" таких 999 значений по 1 из 1000 чисел будет = 0.
Целочисленное деление 999 / 1000 = 0 - вы никогда такого не слышали?
0
11 / 10 / 7
Регистрация: 07.05.2013
Сообщений: 248
12.06.2017, 17:36 8
@всех элементов массива, //имеющих нечётное значение.

где проверка на нечетность?
и вообще, если среднее - сумма всех элементов, поделенное на количество, почему деление идет на 1000 (их значение), а не их кол-во (т.е. 30 или меньше, смотря сколько их в массиве)?

Дан целочисленный массив из 30 элементов.

скорее всего подразумевается что-то такое:
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
int * mass = new int[30];
 
    int avgSumm = 0;
    int count = 0;
 
    for (int i = 0; i < 30; ++i)
    {
        mass[i] = rand() % 1000;
    }
 
    for (int i = 0; i < 30; ++i)
    {
        if (mass[i] % 2 != 0)
        {
            cout << mass[i] << endl;
            avgSumm += mass[i];
            ++count;
        }
    }
 
    avgSumm = avgSumm / count;
 
    cout << "среднее арифметическое = " << avgSumm << endl;
 
    delete[] mass;
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
12.06.2017, 17:47 9
Цитата Сообщение от Antikl Посмотреть сообщение
C++
1
int * c = (int*) malloc(1000);
?
C++
1
int *c = (int*)malloc(sizeof(int) * 1000);
или
C++
1
int *c = static_cast<int*>(malloc(sizeof(int) * 1000));
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
12.06.2017, 20:17 10
Цитата Сообщение от Nemovok Посмотреть сообщение
C++
1
int *c = static_cast<int*>(malloc(sizeof(int) * 1000));
Никогда! :
C++
1
int *c = new int [ 1000 ];
0
296 / 125 / 106
Регистрация: 30.10.2015
Сообщений: 690
12.06.2017, 23:05 11
Цитата Сообщение от Olej Посмотреть сообщение
Никогда!
Почему это не правильно?
0
322 / 170 / 24
Регистрация: 25.03.2012
Сообщений: 712
12.06.2017, 23:18 12
Цитата Сообщение от Nemovok Посмотреть сообщение
Почему это не правильно?
Потому что:
- в C++ свои механизмы и API, если вас "тянет" на API С, то и писать нужно на C.
- потому что C & C++ имеют разные аллокаторы памяти, и если их смешать в рамках одного приложения, то это может породить любые перекрёстные эффекты;
- потому что new/delete - это не только управление памятью, но и вызов конструктора/деструктора для размещаемого объекта, что важно для ООП
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.06.2017, 23:18
Помогаю со студенческими работами здесь

Найти среднее арифметическое значение элементов массива
#include &lt;iostream&gt; using namespace std; int shet(int *m, int n) { int x,sum=0;...

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru