Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
#1

Найти наибольшее среди средних арифметических значений строк матрицы - C++

01.12.2011, 12:31. Просмотров 1400. Ответов 25
Метки нет (Все метки)

сформировать матрицу размером m*n и найти наибольшее среди арифметических ее строк
http://www.cyberforum.ru/cpp-beginners/thread722823.html
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.12.2011, 12:31
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Найти наибольшее среди средних арифметических значений строк матрицы (C++):

Сформировать матрицу размером MxN и найти наибольшее среди средних арифметических элементов ее строк.
Сформировать матрицу размером MxN и найти наибольшее среди средних...

Сортировка строк матрицы в порядке возрастания их средних арифметических значений
Необходимо строки матрицы переставить в порядке возрастания их средних...

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

Составить массив средних арифметических строк двухранговой матрицы
Помогите сделать программу. Надо ввести массив 3 на 3, вычислить среднее...

Сформировать массив из средних арифметических соответствующих строк матрицы
Ввести двумерный массив A={aij}, i=\overline{1,m}, j=\overline{1,n}, m, n=20....

25
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 12:50 #2
Цитата Сообщение от zttx Посмотреть сообщение
сформировать матрицу размером m*n и найти наибольшее среди арифметических ее строк
У матрицы бывают арифметические строки? А еще какие строки у матрицы бывают?
1
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 12:53  [ТС] #3
ой, не дописала..
сформировать матрицу размером m*n и найти наибольшее среди средних арифметических ее строк
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 13:13 #4
Если матрица mas[][] размером m*n сформирована, то так:
C
1
2
3
4
5
6
7
8
9
10
11
12
        int i, j, max=0, tmp;       ;
        for(i=0; i<n; i++)
            max+=mas[0][i];
        for(i=1; i<m; i++)
        {
            tmp=0;
            for(j=0; j<n; j++)
                tmp+=mas[i][j];
            if(tmp>max)
                max=tmp;
        }
        printf("%lf", (double)max/n);
сформировать матрицу осилите сами?
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 13:53  [ТС] #5
ой.. думаю, что нет.. я только учусь..
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 14:35 #6
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
#include <iostream>
using namespace std;
int main()
{ 
    int i, j, max=0, tmp, **mas, m, n;
    cout<<"m= ";
    cin>>m;
    cout<<"n= ";
    cin>>n;
    mas=new int*[m];
    for(i=0; i<m; i++)
    {
        mas[i]=new int[n];
        for(j=0; j<n; j++)
        {
            cout<<"["<<i<<"]["<<j<<"]= ";
            cin>>mas[i][j];
        }
    }
    cout<<"Matr:"<<endl;
    for(i=0; i<m; i++)
    {
        for(j=0; j<n; j++)
            cout<<mas[i][j]<<" ";
        cout<<endl;
    }
    for(i=0; i<n; i++)
        max+=mas[0][i];
    for(i=1; i<m; i++)
    {
        tmp=0;
        for(j=0; j<n; j++)
            tmp+=mas[i][j];
        if(tmp>max)
            max=tmp;
    }
    cout<<"Max sredn-arifm: "<<(double)max/n<<endl;
    for (i=0; i<m; i++)
        delete[] mas[i];
    delete[] mas;
 
    return 0;
}
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 14:51  [ТС] #7
а если элементы матрицы не самому вводить, а чтобы это случайные числа были? что в этом случае?
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 15:04 #8
Цитата Сообщение от zttx Посмотреть сообщение
что в этом случае?
тяжелый случай:
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
#include <stdlib.h>
#include <time.h>
#include <iostream>
using namespace std;
int main()
{ 
        int i, j, max=0, tmp, **mas, m, n;
        srand( time( NULL ) );
        cout<<"m= ";
        cin>>m;
        cout<<"n= ";
        cin>>n;
        mas=new int*[m];
        for(i=0; i<m; i++)
        {
                mas[i]=new int[n];
                for(j=0; j<n; j++)
                {
                     mas[i][j]=rand()%10;
                }
        }
        cout<<"Matr:"<<endl;
        for(i=0; i<m; i++)
        {
                for(j=0; j<n; j++)
                        cout<<mas[i][j]<<" ";
                cout<<endl;
        }
        for(i=0; i<n; i++)
                max+=mas[0][i];
        for(i=1; i<m; i++)
        {
                tmp=0;
                for(j=0; j<n; j++)
                        tmp+=mas[i][j];
                if(tmp>max)
                        max=tmp;
        }
        cout<<"Max sredn-arifm: "<<(double)max/n<<endl;
        for (i=0; i<m; i++)
                delete[] mas[i];
        delete[] mas;
 
    return 0;
}
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 15:10  [ТС] #9
а зачем библиотека time.h?
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 15:13 #10
Цитата Сообщение от zttx Посмотреть сообщение
а зачем библиотека time.h?
вот тут почитайте:
http://www.cyberforum.ru/cpp-beginners/thread44753.html
самое первое сообщение.
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 16:26  [ТС] #11
а если без этой библиотеки?
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 16:31 #12
Цитата Сообщение от zttx Посмотреть сообщение
а если без этой библиотеки?
а Вы попробуйте и увидите, что компилятор будет ругаться на строчку:
C++
1
              srand( time( NULL ) );
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 16:36  [ТС] #13
а если без этой библиотеки обойтись?

Добавлено через 2 минуты
так мне не надо, чтобы он каждый раз менял числа..
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 16:38 #14
Цитата Сообщение от zttx Посмотреть сообщение
а если без этой библиотеки обойтись?
как я понимаю, сейчас речь идет о:
C++
1
 srand( time( NULL ) );
это не библиотека, но суть не в этом.
Можно из моего последнего кода удалить (или если умеете закомментировать) две строки:
C++
1
#include <time.h>
и
C++
1
srand( time( NULL ) );
Программа после этого будет работать. Единственное вот что. Вы ее запустите несколько раз, вводя при этом одинаковые значения n и m (например 3 и 4) и посмотрите на значения матрицы (будут они меняться или нет) и все поймете. Если Вас это устроит, то оставляйте так.
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 16:52  [ТС] #15
да, спасибо огромное)) мне это и надо)

Добавлено через 1 минуту
только объясните что такое tmp и **mas

Добавлено через 2 минуты
и еще, что это значит? mas=new int*[m]
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 16:54 #16
Цитата Сообщение от zttx Посмотреть сообщение
только объясните что такое tmp и **mas
tmp - переменная типа int , в данном коде используется для подсчета суммы элементов каждой строки.
**mas указатель на двумерный массив (имя двумерного массива). Если хотите про **mas узнать больше, то поищите про динамические двумерные массивы даже здесь на форуме.
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
01.12.2011, 16:58  [ТС] #17
а если мне динамический не нужен, то просто убрать ** и все?
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
01.12.2011, 17:37 #18
Цитата Сообщение от zttx Посмотреть сообщение
а если мне динамический не нужен, то просто убрать ** и все?
просто убрать ** и все - не получится. Можно например так:
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
#include <stdlib.h>
#include <iostream>
using namespace std;
#define N 100 // вот здесь задается предельное значение для n и m
int main()
{ 
        int i, j, max=0, tmp, mas[N][N], m, n;
        cout<<"m= ";
        cin>>m;
        cout<<"n= ";
        cin>>n;
        for(i=0; i<m; i++)
        {
                for(j=0; j<n; j++)
                {
                     mas[i][j]=rand()%10;
                }
        }
        cout<<"Matr:"<<endl;
        for(i=0; i<m; i++)
        {
                for(j=0; j<n; j++)
                        cout<<mas[i][j]<<" ";
                cout<<endl;
        }
        for(i=0; i<n; i++)
                max+=mas[0][i];
        for(i=1; i<m; i++)
        {
                tmp=0;
                for(j=0; j<n; j++)
                        tmp+=mas[i][j];
                if(tmp>max)
                        max=tmp;
        }
        cout<<"Max sredn-arifm: "<<(double)max/n<<endl;
     return 0;
}
и учтите что в данной программе нельзя n и m нельзя задавать значения больше чем 100
0
zttx
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 65
02.12.2011, 15:19  [ТС] #19
здравствуйте))) а можете еще помочь?
0
valeriikozlov
Эксперт С++
4683 / 2509 / 751
Регистрация: 18.08.2009
Сообщений: 4,550
02.12.2011, 23:01 #20
Цитата Сообщение от zttx Посмотреть сообщение
здравствуйте))) а можете еще помочь?
не стесняйтесь, спрашивайте.
0
02.12.2011, 23:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.12.2011, 23:01
Привет! Вот еще темы с решениями:

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

Матрица m x n. Найти макс значение среди средних значений для каждой строки матрицы. Вернуть номер строки
Здравствуйте. Код есть, но ведет себя не стабильно. Выводит не то, что нужно....

Матрицы. Найти максимальное значение среди буквенных символов и минимальное среди цифровых значений
Задание звучит так:Дана матрица 5х7, элементами которой являются значения...

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


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

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

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