Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.12.2018
Сообщений: 39
1

Подсчитать сумму и среднее арифметическое в трёх массивах, использовав две функции для ввода и анализа их

28.03.2019, 12:08. Просмотров 1057. Ответов 6
Метки нет (Все метки)

Здравствуйте. Ломаю голову, нужна помощь. Текст задания следующий:

Даны три одномерные массивы, каждый из которых имеет произвольное количество элементов. Для каждого из них найти сумму и среднее арифметическое для элементов, значения которых находятся в заданном интервале. . Кроме функции main () применить две функции. Одна - для ввода элементов отдельного массива с клавиатуры, а другая - для его анализа с целью получить нужные результаты.

В принципе, кое что я написал
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
#include <iostream>
using namespace std;
 
#define Nx 5
#define Ny 5
#define Nz 5
 
void vvod (float x[], int n, char q);
float sum (float x[], int n);
 
 
int main()
{
    float x [Nx], y [Ny], z [Nz];
    vvod (x, Nx, 'x');
    vvod (y, Ny, 'y');
    vvod (z, Nz, 'z');
    
    
    
    int c1 = 0;
    int c2=0; 
    int sr1 = 0;
    int n;
    for (int i=0; i<n; i++) {
        sr1 += x[i];
        c1 ++;
    }
    cout << "Sr" << c1 >> sr1/c1;
    return 0;
}
 
 
void vvod(float x [], int n, char q) {
int i;
for (i = 0; i <n; i ++)
{
printf ("Введіть% c [% i] = \ n", q, i + 1);
scanf ("% f", & x [i]);
}
return;
}
Но до конца не понял как использовать ввод элементов и правильно искать сумму и ср. арифметическое, и так же не понимаю что используется в анализе. Помогите, если можете
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.03.2019, 12:08
Ответы с готовыми решениями:

Функции. Найти среднее арифметическое всех элементов с четными номерами и количество нулевых элементов в трех массивах.
Заданы три одномерных массива R, U, W. Количество элементов каждого массива не превышает 25. Для...

Найти среднее арифметическое четных чисел в трех массивах
Всем привет! Написал код, считает сумму четных чисел в трех массивах... Не могу понять как...

Найти в массивах минимальны элемент и подсчитать среднее арифметическое элементов, стоящих после минимального
Даны 2 одномерных массива размера n и m (n не должен равняться m)(num&gt;=10). Найти в массивах...

Подсчитать среднее арифметическое трех чисел
Короче препод в универе задал на дом задания .А суть такова : вводишь любые три числа ,если же...

6
9 / 9 / 2
Регистрация: 27.03.2019
Сообщений: 21
28.03.2019, 13:02 2
На сколько я понял как-то так:
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
61
62
63
64
65
66
#include <iostream>
 
using namespace std;
 
void fill(int mas[], int n) {
    for (int i = 0; i < n; i++) {
        cout << "Введите элемент массива: ";
        cin >> mas[i];
    }
}
void out(int mas[], int n) {
    for (int i = 0; i < n; i++) {
        cout <<"\t"<< mas[i];
    }
}
void analiz(int mas[], int n) {
    int x, y;
    float sum = 0;
    float mid;
    cout << "\nУкажите интервал для анализа[x,y]: ";
    cin >> x;
    cin >> y;
    while (x<0 || x>y || y>=n || y<0) {
        cout << "Указанный интервал выходит за пределы массива [0," << n-1 << "]" << endl;
        cin >> x;
        cin >> y;
    }
    for (int i = x; i <= y; i++) {
        sum += mas[i];
    }
    cout <<"Сумма на интервале: "<<sum;
    mid = sum / (y - x + 1);
    cout << "\nСреднее арифметическое на интервале: " << mid;
}
int main()
{
    setlocale(LC_ALL, "ru");
    int n, m, h;
    cout << "Укажите размер 1-го массива: ";
    cin >> n;
    cout << "Укажите размер 2-го массива: ";
    cin >> m;
    cout << "Укажите размер 3-го массива: ";
    cin >> h;
    int *mas1 = new int[n];
    int *mas2 = new int[m];
    int *mas3 = new int[h];
    cout << "Заполните первый массив:\n";
    fill(mas1, n);
    cout << "Заполните второй массив:\n";
    fill(mas2, m);
    cout << "Заполните третий массив:\n";
    fill(mas3, h);
    cout << "Первый массив: ";
    out(mas1, n);
    cout << "\nВторой массив: ";
    out(mas2, m);
    cout << "\nТретий массив: ";
    out(mas3, h);
    cout << "\nАнализ первого массива: \n";
    analiz(mas1, n);
    cout << "\nАнализ второго массива: \n";
    analiz(mas2, m);
    cout << "\nАнализ третьего массива: \n";
    analiz(mas3, h);
}
1
5246 / 3565 / 2114
Регистрация: 18.12.2017
Сообщений: 11,333
28.03.2019, 14:12 3
Phryme, малость перемудрили если
Цитата Сообщение от Phryme Посмотреть сообщение
Указанный интервал выходит за пределы массива
разве нельзя произвести расчёты?

в условии не указано, что массивы и границы интервала целочисленные, применяйте double.

yasonzah, в формулировке задачи применяется слово интервал, без указания открытый он или закрытый. уточните этот момент.
2
9 / 9 / 2
Регистрация: 27.03.2019
Сообщений: 21
28.03.2019, 14:24 4
Yetty, Спасибо, буду знать. Ещё только учусь
0
5246 / 3565 / 2114
Регистрация: 18.12.2017
Сообщений: 11,333
28.03.2019, 14:45 5
Phryme, Ваш код неправильный. нужно считать для элементов значения которых попадают в интервал.
т.е. интервал не по индексам, а по значениям элементов. интервал считайте без границ (если не уточняют, скорее всего речь идёт об открытом интервале).
0
9 / 9 / 2
Регистрация: 27.03.2019
Сообщений: 21
28.03.2019, 15:00 6
Yetty, не понял вас. В моём коде задаётся интервал(по индексам) а подсчет суммы и среднего арифметического реализован по значениям элементов массива из заданного интервала. Вы хотите сказать что нужно задавать интервал не по индексам а вводить значения ?
0
5246 / 3565 / 2114
Регистрация: 18.12.2017
Сообщений: 11,333
28.03.2019, 15:48 7
Лучший ответ Сообщение было отмечено yasonzah как решение

Решение

Цитата Сообщение от Phryme Посмотреть сообщение
В моём коде задаётся интервал(по индексам)
уже сообщал:
Цитата Сообщение от Yetty Посмотреть сообщение
интервал не по индексам, а по значениям элементов
Добавлено через 35 минут
yasonzah, считаю, что интервал открытый (границы не входят):
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> 
using namespace std;
 
void Set (double *x, int n) 
{    
    for (int i = 0; i < n; i++)         
        cin >> x[i];    
}
 
void SumAvg (double *x, int n, double k1, double k2, double&sum, double&avg, int &count)
{
    count=0;
    sum=0.0;
    for (int i = 0; i < n; i++) 
        if (x[i]>k1 && x[i]<k2) {count++;sum+=x[i];} 
    if(count) avg=sum/count;    
}
 
int main()
{    
    int size_A, size_B, size_C, count;
    double k1,k2,sum,avg;
    
    cout << "size_A="; cin >> size_A;
    cout << "size_B="; cin >> size_B;
    cout << "size_C="; cin >> size_C;    
    
    double *A = new double[size_A];
    double *B = new double[size_B];
    double *C = new double[size_C];
    
    cout << "Enter " << size_A << " elements matrix A:\n";
    Set (A,size_A);    
    cout << "Enter " << size_B << " elements matrix B:\n";
    Set (B,size_B);
    cout << "Enter " << size_C << " elements matrix C:\n";
    Set (C,size_C);
    
    cout << "Enter limits:\n";
    cout << "k1="; cin >> k1;
    cout << "k2="; cin >> k2;
    
    cout << "Matrix A:\n";    
    SumAvg (A,size_A,k1,k2,sum,avg,count); 
    if (count) cout << "local_sum=" << sum << "  local_avg=" << avg << "\n";
    else cout << "elements in the interval (" << k1 << ";" << k2 << ") are absent\n"; 
        
    cout << "Matrix B:\n";        
    SumAvg (B,size_B,k1,k2,sum,avg,count);        
    if (count) cout << "local_sum=" << sum << "  local_avg=" << avg << "\n"; 
    else cout << "elements in the interval (" << k1 << ";" << k2 << ") are absent\n"; 
    
    cout << "Matrix C:\n";        
    SumAvg (C,size_C,k1,k2,sum,avg,count);        
    if (count) cout << "local_sum=" << sum << "  local_avg=" << avg << "\n";
    else cout << "elements in the interval (" << k1 << ";" << k2 << ") are absent\n"; 
 
system("pause");
return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2019, 15:48

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

Найти сумму, произведение и среднее арифметическое трёх целых чисел, введённых с клавиатуры
Всем привет. На курсе попалось такое простецкое задание Напишите программу, которая находит...

Подсчитать количество натуральных чисел, их сумму и среднее арифметическое
Пока не будет введено отрицательное число,среди произвольных чисел,вводимых...

Сделать таблицу, в столбцах подсчитать сумму и среднее арифметическое
Короче до пятницы СРОЧНО надо сдать VBA(если не сделаю ОТЧИСЛЯТ от универа).У меня вариант 8.Короче...

Подсчитать сумму положительных и среднее арифметическое отрицательных элементов массива
Разработать программы по формированию и обработке одномерного и двумерного массивов. Полученные...

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


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

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

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