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

Сформировать одномерный массив каждый элемент которого равен первому чётному элементу соответствующего столбца матрицы

14.05.2018, 17:56. Показов 5979. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дан двумерный массив размерностью [n,m], заполненный целыми числами введенными с клавиатуры. Сформировать одномерный массив , каждый элемент которого равен первому чётному элементу соответствующего столбца , если такого нет, то равен нулю.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.05.2018, 17:56
Ответы с готовыми решениями:

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

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

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

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

14
7428 / 5022 / 2891
Регистрация: 18.12.2017
Сообщений: 15,694
14.05.2018, 18:21 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
#include <iostream>
#include <ctime>
using namespace std;
 
int main()
{
    srand((int)time(0));
    int n, m, k;
    cout <<"Enter n: "; cin >>n;
    cout <<"Enter m: "; cin >>m;
    
      int **a = new int*[n]; 
    for (int i = 0; i < n; i++)
      a[i]=new int[m];
      
    int*b = new int[n];
    
    for (int i = 0; i < n; i++)
    {
    for (int j = 0; j < m; j++)
    {
    a[i][j]=rand()%9 + 1;
    cout <<a[i][j]<<" ";
    }
    cout << endl;
    }
    cout << endl;
    
    for (int j = 0; j < m; j++)
    {
    k=0;
    for (int i = 0; i < n; i++) 
    if (a[i][j]%2==0) {k++;b[j]=a[i][j];break;}
    if (k==0) b[j]=0;
    cout <<b[j]<<" ";
    }
    cout << endl;
    
    for (int i = 0; i < n; i++)
    delete [] a[i];
    delete [] a;
    delete [] b;
system("pause");
return 0;
}
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
14.05.2018, 18:22  [ТС] 3
Yetty, как работает прога?
0
SuperKir
14.05.2018, 18:27
  #4

Не по теме:

Сергей1112444, вот так:

Цитата Сообщение от Сергей1112444 Посмотреть сообщение
Дан двумерный массив размерностью [n,m], заполненный целыми числами введенными с клавиатуры. Сформировать одномерный массив , каждый элемент которого равен первому чётному элементу соответствующего столбца , если такого нет, то равен нулю.

0
7428 / 5022 / 2891
Регистрация: 18.12.2017
Сообщений: 15,694
14.05.2018, 18:56 5
Цитата Сообщение от SuperKir Посмотреть сообщение
Сергей1112444, вот так:

Сергей1112444, только ввод нужно переделать (не рандом, а с клавиатуры) - сделаете сами ?
Цитата Сообщение от Сергей1112444 Посмотреть сообщение
Yetty, как работает прога?
Внутренний цикл проверяет элементы столбца на чётность. Если такой найден, счётчик k принимает значение k=1, соответствующий элемент массива 'b' принимает значение этого чётного элемента массива 'a' и внутренний цикл по break завершается. Затем происходит обнуление k и начинается проверка второго столбца. Допустим в нём нет чётных. Тогда k=0 и элемент массива 'b' принимает значение 0 и т.д. пока вся матрица не пройдёт проверки.
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
14.05.2018, 21:05  [ТС] 6
Yetty, Помогите, пожалуйста)
0
7428 / 5022 / 2891
Регистрация: 18.12.2017
Сообщений: 15,694
14.05.2018, 21:45 7
Лучший ответ Сообщение было отмечено Сергей1112444 как решение

Решение

пожалуйста, переделать не сложно - мне сразу нужно было сбросить такой вариант, просто тестил на рандоме
а сделать ввод по условию задачи забыл
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 <iostream>
using namespace std;
 
int main()
{
    int n, m, k;
    cout <<"Enter n: "; cin >>n;
    cout <<"Enter m: "; cin >>m;
    
      int **a = new int*[n]; 
    for (int i = 0; i < n; i++)
      a[i]=new int[m];
      
    int*b = new int[n];
    
    cout <<"Enter matrix elements:\n";
    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 << a[i][j] << " ";
    cout << endl;
    }
    cout << endl;
    
    for (int j = 0; j < m; j++)
    {
    k=0;
    for (int i = 0; i < n; i++) 
    if (a[i][j]%2==0) {k++;b[j]=a[i][j];break;}
    if (k==0) b[j]=0;
    cout <<b[j]<<" ";
    }
    cout << endl;
    
    for (int i = 0; i < n; i++)
    delete [] a[i];
    delete [] a;
    delete [] b;
system("pause");
return 0;
}
1
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
14.05.2018, 22:05  [ТС] 8
Yetty, а try и catch добавить нужно?
Я добавил но не знаю то это или нет
0
7428 / 5022 / 2891
Регистрация: 18.12.2017
Сообщений: 15,694
15.05.2018, 00:07 9
Цитата Сообщение от Сергей1112444 Посмотреть сообщение
Yetty, а try и catch добавить нужно?
нет, не нужно.
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
22.05.2018, 09:19  [ТС] 10
Yetty, а как избавится от нехватки памяти? Типо если ввести 100000000000. Чтобы прога не сломалась а выдала нехватка памяти
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
22.05.2018, 12:29 11
Сергей1112444, ограничить ввод размера int)
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
24.05.2018, 16:43  [ТС] 12
SuperKir, не, препод говорит что нужно добавить try и catch
и чтобы не был утечки
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
24.05.2018, 19:07 13
Сергей1112444, Сравнивай вводимое число с INT_MAX (макс.знаковый инт) или UINT_MAX (макс.беззнаковый инт) и выбрасывай (throw X) исключение, которое потом обрабатывай в catch нужным образом.
0
0 / 0 / 0
Регистрация: 04.03.2018
Сообщений: 31
29.05.2018, 16:12  [ТС] 14
SuperKir, а можно код?
0
474 / 426 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
29.05.2018, 18:37 15
Что-нибудь типо такого)
P.s. не проверял и не компилил, писал на скорую руку непосредственно в форме ответа.
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
    double n, m;
try
{
    while (true)
    {
        cout <<"Enter n: "; cin >>n;
        cout <<"Enter m: "; cin >>m;
        if (n <= INT_MAX && m <= INT_MAX)
            break;
        else throw 1;
    }
}
catch (int err)
{
switch(err)
{
case 1: cout << "Утечка памяти"; //хотя это не так, конечно
break;
case 2: ...
...
}
}
      int **a = new int*[(int)n]; 
    for (int i = 0; i < n; i++)
      a[i]=new int[(int)m];
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.05.2018, 18:37
Помогаю со студенческими работами здесь

Сформировать массив, каждый элемент которого равен суме элементов соответствующего столбца матрицы
Ребят помогите с кодом пожалуйста. Условие : Дана матрица действительных чисел D размером 6х6....

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

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

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


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

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

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