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

Дан двумерный массив Х размером n*m, заполненный случайными числами.

13.08.2012, 15:28. Показов 5658. Ответов 3
Метки нет (Все метки)

Тема: Матрицы.
Дан двумерный массив Х размером n*m, заполненный случайными числами.
Вычислить сумму элементов с индексами кратными 3, среднее арифметическое всех четных элементов. Определить, есть ли в данном массиве строка, в которой имеется два элемента массива, имеющие наибольшие значения.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.08.2012, 15:28
Ответы с готовыми решениями:

Дан двумерный массив размером nхm, заполненный случайными числами.
Прошу помощи с такой задачей: Дан двумерный массив размером nхm, заполненный случайными...

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

Дан Двумерный массив размером заполненный случайными числами, количество элементов 20, все положительные. 1.Оп
Дан Двумерный массив размером заполненный случайными числами, количество элементов 20, все...

Дан двумерный массив размером 5х6, заполненный случайным образом
Дан двумерный массив размером 5х6, заполненный случайным образом. Заменить максимальный элемент...

3
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 974
13.08.2012, 17:18 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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
    const int n = 7;
    const int m = 6;
    int matrix[n][m];
    srand(time(NULL));
    for(int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
            std::cout << std::setw(4) << (matrix[i][j] = rand() % 10);
        std::cout << std::endl;
    }
    // вычислить сумму элементов с индексами кратными 3
    int sum = 0;
    for(int i = 0; i < n; i += 3)
        for(int j = 0; j < m; j += 3)
            sum += matrix[i][j];
    std::cout << "Sum: " << sum << std::endl;
    // среднее арифметическое всех четных элементов
    sum = 0;
    int count = 0;
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            if (matrix[i][j] % 2 == 0)
            {
                count++;
                sum += matrix[i][j];
            }
    std::cout << "Avg: " << ((double)sum / count) << std::endl;
    /*  Определить, есть ли в данном массиве строка,
     *  в которой имеется два элемента массива, имеющие наибольшие значения.
     */
    int max = matrix[0][0];
    for(int i = 0; i < n; i++)
        for(int j = 0; j < m; j++)
            if (matrix[i][j] > max)
                max = matrix[i][j];
    bool two_max_exist = false;
    for(int i = 0; i < n; i++)
    {
        count = 0;
        for(int j = 0; j < m; j++)
            if (matrix[i][j] == max)
                count++;
        if (count == 2)
        {
            two_max_exist = true;
            break;
        }
    }
    std::cout << "Max: " << max << std::endl;
    std::cout << "Yes, exist" << std::endl;
    return 0;
}
1
8 / 8 / 1
Регистрация: 13.08.2012
Сообщений: 18
13.08.2012, 17:35 3
Библиотека: Matrix.h
http://www.stroustrup.com/Prog... x/Matrix.h

Библиотека: MatrixIO.h
http://www.stroustrup.com/Prog... MatrixIO.h


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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
//
// 
// 
//
 
#include<iostream>
#include<fstream>
#include<sstream>
#include<cmath>
#include<cstdlib>
#include<string>
#include<list>
#include<vector>
#include<algorithm>
#include<stdexcept>
#include "Matrix.h"
#include "MatrixIO.h"
 
using namespace Numeric_lib;
using namespace std;
 
//------------------------------------------------------------------------------
 
inline void keep_window_open()
{
    cin.clear();
    cout << "Please enter a character to exit\n";
    char ch;
    cin >> ch;
    return;
}
 
//------------------------------------------------------------------------------
 
inline int randint(int max) { return rand()%max; }
 
//------------------------------------------------------------------------------
 
int main()
{
    setlocale( LC_ALL, "Russian" );
 
    int n;
    int m;
 
    cout << "Введите n и m: ";
    cin >> n >> m;
 
    Matrix<int, 2> X(n, m);
 
    srand(2);
 
    for (Index i = 0; i < n; ++i)
        for (Index j = 0; j < m; ++j)
            X(i, j) = randint(20);
 
    cout << X << '\n';
 
    int sum = 0;
    int sum_even = 0;
    int even = 0;
 
    for (Index i = 0; i < n; ++i)
        for (Index j = 0; j < m; ++j)
        {
            if (X(i, j) % 2 == 0)
            {
                sum_even += X(i, j);
                ++even;
            }
            if (i % 3 == 0 && j % 3 == 0)
                sum += X(i, j);
        }
    
    cout << "Сумма элементов с индексами кратных 3: " << sum << '\n';
 
    cout << "Среднее арифметическое всех четных элементов: "
         << double(sum_even / even) << '\n';
 
    vector<int> vec;
    for (Index i = 0; i < n; ++i)
    {
        sort(&X[i][0], &X[i][0] + m);
        vec.push_back(X[i][m - 1]);
    }
 
    for (int i = 0; i < vec.size(); ++i)
    {
        if (vec[i] == *max_element(vec.begin(), vec.end()))
        {
            sort(vec.begin(), vec.end());
            if ((X[i][m - 2] >= vec[vec.size() - 2]))
            {
                cout << "Строка, в которой имеется два элемента массива, "
                     << "имеющие наибольшие значения:\n";
                cout << X[i] << '\n';
                break;
            }
            else
            {
                cout << "Строка, в которой имеется два элемента массива, "
                <<  "имеющие наибольшие значения не найдена\n";
                break;
            }
        }
    }
    keep_window_open();
    return 0;
}
 
//------------------------------------------------------------------------------
1
Mobile Software Engineer
Эксперт С++
5365 / 1584 / 956
Регистрация: 23.01.2011
Сообщений: 3,214
13.08.2012, 20:39 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
#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>
 
int main()
{
    srand(time(0));
    const int Rows = 5, Colls = 5;
    int Matrix[Rows][Colls];
    int Summa = 0, Max_i = 0, Max_j = 0;
    int SummaEl = 0, Count = 0, CountS = 0;
    bool Flag = false; 
    
    std::cout<<"Matrix:\n";
    for (int i = 0; i < Rows; i++)
    {
        for (int j = 0; j < Colls; j++)
        {
            Matrix[i][j] = rand()%20;
            if (i % 3 == 0 && j % 3 == 0)
               Summa += Matrix[i][j];
            if (Matrix[i][j] % 2 == 0)
            {
               SummaEl += Matrix[i][j];
               Count++;
            }
            if (Matrix[i][j] > Matrix[Max_i][Max_j])
            {
               Max_i = i;
               Max_j = j;
            }
            std::cout<<std::setw(4)<<Matrix[i][j];
        }
        std::cout<<std::endl;
    }
        
    for (int i = 0; i < Rows; i++)
    {
        for (int j = 0; j < Colls; j++)
            if (Matrix[i][j] == Matrix[Max_i][Max_j])
               CountS++;
        if (CountS == 2)
           Flag = true;
        CountS = 0;
    }
    std::cout<<"Summa elementov s indexami, kratnie 3 = "<<Summa<<std::endl;
    std::cout<<"Sred. arifm, chetnih elementov = "<<(SummaEl / Count)<<std::endl;
    std::cout<<"Max element = "<<Matrix[Max_i][Max_j]<<std::endl;
    std::cout<<"Stroki, v kotorih 2 max. elementa - "<<Flag<<std::endl;
    
    system("pause");
    return 0;
}
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.08.2012, 20:39
Помогаю со студенческими работами здесь

Дан двумерный массив размером nxm, заполненный случайным образом
23. Дан двумерный массив размером nхm, заполненный случайным образом. Определить, есть ли в данном...

Дан массив n*m заполненный случайными числами. Найти минимальный эл-т в заданной строке и вывести его индексы
В С++ builder 6. чет не работает програмка. randomize(); int min=1000000,i,j,n,m,a;...

Дан двумерный массив размером nm, заполненный случайным образом. Найти сумму отрицательных элементов
Помогите, пожалуйста. Дан двумерный массив размером nm, заполненный случайным образом. Найти...

Дан массив целых чисел, заполненный случайными числами. Вычислить количество элементов кратных пяти и заменить
Дан массив целых чисел, заполненный случайными числами. Вычислить количество элементов кратных...


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

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

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