Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
BoxHead
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 53
#1

Получить вектор B, каждый элемент которого равен среднему арифметическому соответствующей строки массива A - C++

02.07.2016, 15:05. Просмотров 282. Ответов 6
Метки нет (Все метки)

Дана матрица A. Получить вектор B, каждый элемент которого равен среднему арифметическому соответствующей строки массива A.
Ввод: Из консоли. Подается число строк массива n, затем число столбцов m, затем элементы массива, построчно, через пробел.
Вывод: Каждый элемент вектора B через пробел. Вещественное число с точностью 2.
Длина вектора B соответственно равна n.
Пример ввода:
2 6
8 5 6 4 2 8
4 5 10 6 2 4
Пример вывода:
5.50 5.17
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.07.2016, 15:05
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Получить вектор B, каждый элемент которого равен среднему арифметическому соответствующей строки массива A (C++):

Создать массив, каждый элемент которого равен среднему арифметическому соответствующей строки данной матрицы - C++
Матрица А(5,3) задать по формуле A=-cos(-4,3i-j). Создать новый одномерный массив, каждый элемент которого равен среднему арифметическому...

Получить массив, каждый элемент которого равен среднему арифметическому остальных элементов исходного массива - C++
помогите пожулайста написать программу, нужно сформировать массив, содержащий n элементов, с помощью датчика случайных чисел. получить...

Из матрицы получить массив, каждый элемент которого равен среднему арифметическому каждой строки матрицы - C++
Очень прошу помочь! Из 2мерной квадратной матрицы (7х7) получить 1мерный массив, каждый элемент которого равен среднему арифметическому...

Получить массив B, очередной элемент которого равен среднему арифметическому тройки элементов массива A - C++
Задача простая :) (На языке Си/Си++) Из массива а0, а1, ... , а(3n-1) получить массив b0, b1, ... , b(n-1), очередная компонента...

Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу соответствующей строки двумерного массива. - C++
Дан двумерный массив целых чисел. Сформировать одномерный массив, каждый элемент которого равен наибольшему по модулю элементу...

Построить вектор, каждый элемент которого равен количеству равных элементов в соответствующей строке матрицы - C++
Помогите решить задачку ребят. Буду очень признателен Дана матрица А(nxn). Построить вектор, каждый элемент которого равен количеству...

6
Peoples
1172 / 677 / 426
Регистрация: 06.02.2016
Сообщений: 1,781
Записей в блоге: 13
Завершенные тесты: 4
02.07.2016, 17:10 #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
#include<iostream>
#include <vector>
#include <iomanip>
using namespace std;
int main() {
    setlocale(LC_ALL,"RUS");
    int n,m;
    cout<<"Введите количество строк и столбцов"<<endl;
    cin>>n>>m;
    int a[n][m];
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++) {
            cin>>a[i][j];
        }
 
    for (int i=0; i<n; i++) {
 
        for (int j=0; j<m; j++)
            cout<<setw(4)<<a[i][j]<<" ";
        cout<<endl;
    }
    double sum=0;
    vector<double>val;
    cout<<endl;
    for (int i=0; i<n; i++) {
        sum=0;
        for (int j=0; j<m; j++) {
            sum+=a[i][j];
        }
        double avg=sum/m;
        val.push_back(avg);
    }
    cout<<endl;
    cout<<"Vector"<<endl;
    for (vector<double>::iterator iter=val.begin(); iter!=val.end(); iter++) {
        cout<<fixed<<setprecision(2)<<*iter<<" ";
    }
 
    system("pause") ;
    return 0;
}
1
Хрисипп
19 / 29 / 8
Регистрация: 09.02.2016
Сообщений: 217
02.07.2016, 17:44 #3
Цитата Сообщение от Peoples Посмотреть сообщение
C++
Цитата Сообщение от BoxHead Посмотреть сообщение
Дана матрица A.
вот покороче. вроде работает. только VS жалуется, что массив не константами объявляется, я забил и gcc скомпилил
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
#include <vector>
 
 
using namespace std;
 
int main()
{
    int x, y;
    cout<<"Number of rows   "; cin>>y;
    cout<<"Number of columns   "; cin>>x;
    int m[y][x];
    vector <double> vec;
    for (int str = 0; str < y; str++) {
        double sum=0;
        cout<<"Row number "<<str+1<<endl;;
        for (int stb = 0; stb < x;stb++) {
            cin>>m[stb][str];
            sum+=m[stb][str];
        }
        vec.push_back(sum/x);
 
    }
    cout<<"\n\nShowTime\n\n";
    for (int sh = 0; sh < (y); sh++) {
        cout << vec[sh]<<endl;
    }
    return 0;
}
0
BoxHead
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 53
02.07.2016, 18:52  [ТС] #4
Спасибо большое Peoples! Все работает просто замечательно!
Но есть маленькое но, ее надо бы упростить (просто я банально не проходил некоторые функции). Объясните пожалуйста те места которые мне не понятны и если это возможно то упростите ее. (Я в вашей программе кое что убрал то что мне не нужно было)
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
#include<iostream>
#include <vector> //я так понимаю эта библиотека отвечает за вектора
#include <iomanip> //это я не знаю что это!
using namespace std;
int main() {
    setlocale(LC_ALL,"RUS");
    int n,m;
    scanf("%d", &n);
    scanf("%d", &m);
    int a[20][20];
    for (int i=0; i<n; i++)
        for (int j=0; j<m; j++) {
            scanf("%d", &a[i][j]);
        }
    double sum=0;
    vector<double>val; //это я не знаю что это!
    for (int i=0; i<n; i++) {
        sum=0;
        for (int j=0; j<m; j++) {
            sum+=a[i][j];
        }
        //все что ниже я не знаю что это!
        double avg=sum/m;
        val.push_back(avg);
    } 
    for (vector<double>::iterator iter=val.begin(); iter!=val.end(); iter++) {
        cout<<fixed<<setprecision(2)<<*iter<<" ";
    }
  printf("\n");
    system("pause") ;
    return 0;
}
0
Peoples
1172 / 677 / 426
Регистрация: 06.02.2016
Сообщений: 1,781
Записей в блоге: 13
Завершенные тесты: 4
02.07.2016, 19:18 #5
C++
1
2
3
4
        //все что ниже я не знаю что это!
        double avg=sum/m; // почитали сумму для строки, теперь к переменной avg присвоим  значение  sum/n(среднее арифметическое, то есть сумма элементов данной строки делить на количество этих элементов, то есть количества столбцов
        val.push_back(avg);   // стандартная функция добавления значения в конец вектор (с помощью неё и заполняют вектора) 
    }
C++
1
2
3
4
5
6
7
8
 
//все что ниже я не знаю что это!
        double avg=sum/m;
        val.push_back(avg);
    } 
    for (int i=0;i!=val.size();i++) {  // такой вариант перебора должен быть вам знаком
        cout<<fixed<<setprecision(2)<<val[i]<<" ";  //<<fixed<<setprecision(2)<< выводит 2 знака после запятой, как написано в задании. Вызывается библиотекой #include <iomanip>, #include <vector>-эта для работы с векторами, вектор объявляется vector<double> val--это значит объявления вектора val типа double
    }
val.size(); -возвращает размер вектора, но или же можно написать просто n, ведь элементов в нём столько же сколько строк
1
BoxHead
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 53
02.07.2016, 19:50  [ТС] #6
Спасибо большое Peoples! Более менее разобрался с новыми для меня функциями.
Помогите с последним, на что вот это можно заменить?
C++
1
2
vector<double>val;
val.push_back(avg);
Или это нельзя ничем заменить?
0
Peoples
1172 / 677 / 426
Регистрация: 06.02.2016
Сообщений: 1,781
Записей в блоге: 13
Завершенные тесты: 4
02.07.2016, 19:54 #7
BoxHead, вектор есть вектор, создать его можно только так.
1
02.07.2016, 19:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.07.2016, 19:54
Привет! Вот еще темы с ответами:

Получить третий массив той же размерности, каждый элемент которого равен большему из соответствующих элементов данного массива - C++
Плиз, помогите решить задачу!!! Скоро сессия, не успеваю решить все задачи!!! Выручайте!!! Даны два целочисленных массива одинаковой...

Определить квадратную матрицу, каждый элемент которой равен сумме элементов соответствующей строки - C++
Добрый день! Пожалуйста, помогите с программой. В функции Input Вводится массив с клавиатуры, а затем выводится на экран. Во второй...

Вектор, каждый элемент которого равен сумме индексов исходной матрицы, равного ключу поиска - C++
Здравствуйте, помогите пожалуйста решить задачку. Задана матрица произвольной размерности. Заполнить вектор, каждый элемент которого...

11.247. Даны два массива одного размера. Получить третий массив, каждый элемент которого равен:сумме элементов с тем же номером в заданных массивах - C++
11.247. Даны два массива одного размера. Получить третий массив, каждый элемент которого равен:сумме элементов с тем же номером в заданных...


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

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

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