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

Вычесть из каждого элемента массива его среднее арифметическое

19.05.2019, 23:42. Показов 1563. Ответов 3

Задание: Вычесть из каждого элемента массива его среднее арифметическое
Условия:
  1. Осуществить ввод массива.
  2. Тип элементов массива - double.
  3. Форма ввода - файл, в первой строчке файла должно быть натуральное число – количество элементов массива, а во второй перечислены элементы массива.
  4. Осуществить вывод пользователю в две строки – в первой строке массив до изменения, во второй – после.
  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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <iostream>
#include <fstream>
#include <time.h>
#include <cmath>
    using namespace std;
 
    int main() {
        setlocale(LC_ALL, "Russian");
        ifstream fin;
        fin.open("x.txt");
        if (fin.is_open()) {
    
            cout << "Файл успешно открыт" << endl;
                        ///////Что в файле:////
            ///4               ///
            ///4.5 3.5 2.5 1.5///
            ////////////////////
            double sum = 0;
            double avrg;
            int n;
            fin >> n;
            
            cout << "Количество элементов массива " << n << endl;
 
            double* arr = new double[n];
        
            for (double *it = arr; it != arr + n; it++) {
                fin >> *it;
            }
            cout << "Введен массив" << endl;
            for (double *it = arr; it != arr + n; it++) {
                cout << *it << " ";
            }
            
            for (int i = 0; i < n; i++) {
                sum += 
            }
            
            avrg = sum / n;
            cout << "Среднее арифметическое: " << avrg << endl;
 
            delete[] arr;
        }
        else {
            cout << "Не удалось открыть файл. x.txt" << endl;
        }
 
        fin.close();
        system("pause>nul");
        return 0;
    }
Что делать дальше? Просто каша в голове из-за указателей
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.05.2019, 23:42
Ответы с готовыми решениями:

В массиве вычислить среднее арифметическое и вычесть его из каждого элемента массива.
Файлы. Работа с одномерными массивами Постановка задачи 1 Прочитать из файла два одномерных...

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

Из каждого элемента контейнера map вычесть среднее арифметическое контейнера
Контейнер map, тип элементов Int 3.Из каждого элемента вычесть среднее арифметическое контейнера

Вычесть из каждого элемента массива среднее арифметическое отрицательных элементов
Со стандартного потока ввода данных считываются значения одномерного массива размером 20...

3
5791 / 3212 / 1327
Регистрация: 07.02.2019
Сообщений: 8,108
19.05.2019, 23:46 2
Meddan,
C++
1
2
3
for (double *it = arr; it != arr + n; sum += *it++);
//...
for (double *it = arr; it != arr + n; *it++ -= avrg);
1
0 / 0 / 0
Регистрация: 18.05.2019
Сообщений: 38
20.05.2019, 00:49  [ТС] 3
zayats80888, можно поподробнее?
0
0 / 0 / 0
Регистрация: 18.05.2019
Сообщений: 38
27.05.2019, 17:43  [ТС] 4
Вот решение.
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <iostream>
#include <fstream>
#include <time.h>
#include <cmath>
    using namespace std;
 
    int main() {
        setlocale(LC_ALL, "Russian");
        ifstream fin;
        fin.open("x.txt");
        if (fin.is_open()) {
 
            cout << "Файл успешно открыт" << endl;
            ///////Что в файле:////
            ///4               ///
            ///4.5 3.5 2.5 1.5///
            ////////////////////
            double sum = 0;
            double avrg;
            int n;
 
            fin >> n;
            cout << "Количество элементов массива " << n << endl;
 
            double* arr = new double[n];
 
            for (double *it = arr; it != arr + n; it++) {
                fin >> *it;
            }
            cout << "Введен массив: ";
            for (double *it = arr; it != arr + n; it++) {
                cout << "\t " << *it;
            }
            cout << endl;
            for (double *it = arr; it != arr + n; *it++) {
                sum += *it;
            }
            cout << "Cумма элементов массива: " << sum << endl;
 
            avrg = sum / n;
 
            cout << "Среднее арифметическое: " << avrg << endl;
            cout << "Вывод изменённого массива: ";
            
 
            for (double *it = arr; it != arr + n; *it++) {
                *it -= avrg;
                cout << "\t " << *it;
            }
 
            delete[] arr;
        }
        else {
            cout << "Не удалось открыть файл. x.txt" << endl;
        }
 
        fin.close();
        system("pause>nul");
        return 0;
    }
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2019, 17:43
Помогаю со студенческими работами здесь

Обработка массивов: От каждого элемента массива вычесть среднее арифметическое всех элементов массива
Ответ выводится не верно и не совпадает с условиями задачи const n = 10; var A: array of...

Из каждого элемента вычесть среднее арифметическое. Вывести преобразованный массив
Дан массив A(10). Из каждого элемента вычесть среднее арифметическое. Вывести преобразованный...

Массив: Вычесть из каждого элемента действительного вектора C(c1,c2,..,c9) среднее арифметическое вектора.
Помогите решить, не знаю с чего начать: 1. Вычесть из каждого элемента действительного вектора...

Найти среднее арифметическое значение массива и вычесть его из всех элементов
2. Ввести массив A(N). Найти среднее арифметическое значение массива. Из четных элементов массива...


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

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

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