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

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

Войти
Регистрация
Восстановить пароль
 
Dmitrin
22 / 22 / 3
Регистрация: 04.12.2012
Сообщений: 536
#1

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

11.03.2013, 19:27. Просмотров 690. Ответов 4
Метки нет (Все метки)

Подскажите, что делаю не так. Задание такое: Дана матрица A(n,m). Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы.
Вот, вроде бы все написано, а ошибки (возможно глупой) найти не могу.
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 "stdafx.h"
#include <iostream>
#include <iomanip>
#include <math.h>
#include <time.h>
using namespace std;
 
 
int main()
{
    setlocale (LC_ALL, "Russian");
    srand(time(NULL));
    int i, j, n, m, min;
    int ** A;
    cout<<"Введите размерность  матрицы: "<<endl;
    cout<<"Строк: ";
    cin>>n;
    cout<<"Столбцов: ";
    cin>>m;
    A = new int*[n];
    for (i=0;i<n;i++)
    {
        A[i]=new int [m];
        for (j=0;j<m;j++)
        {
            A[i][j]=rand()%20-10;
            cout<<setw(4)<<A[i][j];
        }
        cout<<"\n";
    }
    cout<<"Векторный столбец c наименьшими по модулю элементами столбцов: "<<endl;
    for (j=0;j<m;j++)
    {
        min=A[i][j];
        for (i=0;i<n;i++)
        {
            if (abs(A[i][j])<=min)
                min=abs(A[i][j]);
        }
        cout<<min<<"\n";
    }
    delete [] A;
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 19:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) (C++):

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

Сложить все элементы заданной матрицы с ее наименьшим по модулю элементом - C++
Получить новую матрицу F(7,6) путем сложения всех елементов заданой матрици B(7,6) с ее найменшим по модулю елементом елементы целые от...

Двумерный динамический массив: добавить К столбцов в начало - C++
1. Создайте двумерный динамический массив, имеющий m строк и n столбцов (m и n вводятся с клавиатуры). Элементами массива являются...

Получить новую матрицу, путём деления всех элементов исходной матрицы на ее максимальный по модулю элемент - C++
С матрицы А (n, n) (n &lt;= 6) получить новую матрицу В (n, n) путем деления всех элементов матрицы А на ее максимальный по модулю элемент.

Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент - C++
2)Задан двумерный массив А. Получить новую матрицу путем деления всех элементов исходной матрицы на ее наибольший по модулю элемент.

Двумерный массив.Найти среднее арифметическое по столбцам.Столбец с наибольшим средним записать отдельно. В исходной матрице заменить его нулями - C++
Найти среднее арифметическое по столбцам произвольной матрицы. Столбец с наибольшим средним записать отдельно. В исходной матрице заменить...

4
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
11.03.2013, 19:46 #2
Возможно ты это имеешь ввиду.
Перенеси
C++
1
min=A[i][j];
за пределы обоих циклов (перед вхождением в первый цикл)
и назнач
C++
1
min=abs(A[0][0]);

как то так наверное
C++
1
2
3
4
5
6
7
8
9
10
11
12
 cout<<"Векторный столбец c наименьшими по модулю элементами столбцов: "<<endl;
min=abs(A[0][0]);
    for (j=0;j<m;j++)
    {
        
        for (i=0;i<n;i++)
        {
            if (abs(A[i][j])<=min)
                min=abs(A[i][j]);
        }
        cout<<min<<"\n";
    }
0
Dmitrin
22 / 22 / 3
Регистрация: 04.12.2012
Сообщений: 536
11.03.2013, 20:11  [ТС] #3
Нет, тогда программа некорректно работает. Нужно, чтобы при переходе на новую строку минимальное значение было не прежним значением.

Добавлено через 2 минуты
Я сделал так цикл, вроде бы работает, но я что то сомневаюсь в нем)
C++
1
2
3
4
5
6
7
8
9
10
    for (j=0;j<m;j++)
    {
        min=abs(A[0][0]);
        for (i=0;i<n;i++)
        {
            if (abs(A[i][j])<=min)
                min=abs(A[i][j]);
        }
        cout<<min<<"\n";
    }
0
egor2116
342 / 373 / 42
Регистрация: 20.01.2013
Сообщений: 1,132
11.03.2013, 20:27 #4
А может изменить подход
Например ты находишь сумму элементов столбца и сравниваешь с предыдущим столбцом, если он меньше присваиваешь min номер этого столбца. Надеюсь вы поняли о чем я.
0
Dmitrin
22 / 22 / 3
Регистрация: 04.12.2012
Сообщений: 536
11.03.2013, 21:06  [ТС] #5
Я примерно понял, но не думаю, что следует так усложнять)))
0
11.03.2013, 21:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 21:06
Привет! Вот еще темы с ответами:

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

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

Создать вектор, элементами которого являются максимальные элементы строк матрицы А - C++
Даны матрица А : 5х6 . Создать и напечатать вектор b , элементами которого являются максимальные элементы строк матрицы А. Найти номер...

Массив, каждый элемент которого равен максимуму элементов одной строки исходной матрицы - C++
Не пойму условие.. Дана динамическая целочисленная матрица. Построить динамический одномерный массив, каждый элемент которого равен...


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

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

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