Форум программистов, компьютерный форум CyberForum.ru

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

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

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

11.03.2013, 19:27. Просмотров 665. Ответов 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;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 19:27     Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы)
Посмотрите здесь:

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

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

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

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

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

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

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
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";
    }
Dmitrin
21 / 21 / 3
Регистрация: 04.12.2012
Сообщений: 531
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";
    }
egor2116
339 / 370 / 42
Регистрация: 20.01.2013
Сообщений: 1,123
11.03.2013, 20:27     Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) #4
А может изменить подход
Например ты находишь сумму элементов столбца и сравниваешь с предыдущим столбцом, если он меньше присваиваешь min номер этого столбца. Надеюсь вы поняли о чем я.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 21:06     Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы)
Еще ссылки по теме:

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

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

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

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

Динамический двумерный массив (получить адрес первого элемента первой строки) - C++
есть двумерный массив ........ // объявление двумерного динамического массива int **matrix=new int* ; for(int count=0; count &lt;...

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


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

Или воспользуйтесь поиском по форуму:
Dmitrin
21 / 21 / 3
Регистрация: 04.12.2012
Сообщений: 531
11.03.2013, 21:06  [ТС]     Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы) #5
Я примерно понял, но не думаю, что следует так усложнять)))
Yandex
Объявления
11.03.2013, 21:06     Двумерный динамический массив (Получить векторный столбец, элементы которого являются наименьшим по модулю столбцов исходной матрицы)
Ответ Создать тему
Опции темы

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