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

В заданной матрице найти номера всех столбцов с минимальной суммой элементов - C++

Восстановить пароль Регистрация
 
comcor2013
 Аватар для comcor2013
0 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 136
12.03.2014, 12:21     В заданной матрице найти номера всех столбцов с минимальной суммой элементов #1
В заданной матрице найти номера всех столбцов с минимальной суммой элементов. Вывести подматрицу из этиц столбцов в файл. Как написать эту программу?

Добавлено через 3 минуты
Срочно надо(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.03.2014, 12:21     В заданной матрице найти номера всех столбцов с минимальной суммой элементов
Посмотрите здесь:

C++ В двумерном N*K массиве целых чисел поменять строку с максимальной суммой элементов со строкой с минимальной суммой элементов.
Найти строку с минимальной суммой элементов C++
C++ процедура без глобальных переменных для вывода суммы элементов матрицы и номера строки с минимальной суммой элементов
C++ в матрице P (n,m) найти строку с минимальной суммой отрицательных элементов и поэлементно поменять ее
Дан двумерный массив. Найти строку с минимальной суммой элементов C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
kylroma
Одессит
 Аватар для kylroma
44 / 44 / 18
Регистрация: 30.12.2013
Сообщений: 203
Записей в блоге: 1
Завершенные тесты: 1
12.03.2014, 12:35     В заданной матрице найти номера всех столбцов с минимальной суммой элементов #2
Цитата Сообщение от comcor2013 Посмотреть сообщение
Срочно надо(
Ато зачёт не поставят? Напиши программу как можешь, тебе помогут исправить ошибки.
comcor2013
 Аватар для comcor2013
0 / 0 / 0
Регистрация: 19.08.2013
Сообщений: 136
12.03.2014, 13:08  [ТС]     В заданной матрице найти номера всех столбцов с минимальной суммой элементов #3
kylroma, но не мой препод)

Добавлено через 13 минут
kylroma,
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
#include "stdafx.h"
#include <locale.h>
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;
 
 
void main()
{
    setlocale(0, "");
    srand(unsigned(time(NULL)));
    int n, m;
    cout<<"Введите размер матрицы: ";
    cin >> n >> m;
    int ** A = new int * [n];
    for (int i = 0; i < n; i++)
        A [i] = new int [m];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            A [i][j] = ((rand() % 10));
        }
    }
    cout << "Исходная матрица:" << endl << endl;
    for (int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    cout << "Найдем сумму элементов каждого столбца и запишем в массив:"<< endl;
    for (int i = 0; i < n; i++)
        delete [] A[i];
    delete [] A;
    getch();
}
Я вот создал матрицу, но не понимаю вот этот пункт: В заданной матрице найти номера всех столбцов с минимальной суммой элементов. Не понимаю, как сделать для столбцов...

Добавлено через 18 минут
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
#include "stdafx.h"
#include <locale.h>
#include <iostream>
#include <conio.h>
#include <ctime>
using namespace std;
 
 
void main()
{
    setlocale(0, "");
    srand(unsigned(time(NULL)));
    int n, m, S=0;
    cout<<"Введите размер матрицы: ";
    cin >> n >> m;
    int *B = new int[m];
    int ** A = new int * [n];
    for (int i = 0; i < n; i++)
        A [i] = new int [m];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            A [i][j] = ((rand() % 10));
        }
    }
    cout << "Исходная матрица:" << endl << endl;
    for (int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    cout << "Найдем сумму элементов каждого столбца и запишем в массив:"<< endl;
    for (int j = 0; j < m; j++)
    {
        for(int i=0; i<n; i++)
        {
            S+=A[i][j];
            B[j]=S;
        }
        S=0;
    }
    cout << "Вывод массива с суммой элементов каждого столбца:"<<endl;
    for(int j=0; j<m; j++)
    {
        cout << B[j] << " ";
    }
    cout << endl;
    for (int i = 0; i < n; i++)
        delete [] A[i];
    delete [] A;
    getch();
}
Не понимаю, что дальше делать...
kylroma
Одессит
 Аватар для kylroma
44 / 44 / 18
Регистрация: 30.12.2013
Сообщений: 203
Записей в блоге: 1
Завершенные тесты: 1
12.03.2014, 15:31     В заданной матрице найти номера всех столбцов с минимальной суммой элементов #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
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
//#include "stdafx.h"
#include <locale.h>
#include <iostream>
#include <conio.h>
#include <ctime>
#include <fstream> 
using namespace std;
 
 
int main()
{
    setlocale(0, "");
    //srand(unsigned(time(NULL)));
    int n, m;
    ofstream outFile; 
    outFile.open("carinfo.txt");
    cout<<"Ââåäèòå Г°Г*çìåð Г¬Г*òðèöû: ";
    cin >> n >> m;
    int S[m];
    int ** A = new int * [n];
    for (int i = 0; i < n; i++)
        A [i] = new int [m];
    for (int i = 0; i < n; i++)
    {
        for (int j = 0; j < m; j++)
        {
            cout << "element: " << i << j << ": ";
           cin >> A [i][j];
        }
    }
    cout << "ÈñõîäГ*Г*Гї Г¬Г*òðèöГ*:" << endl << endl;
    for (int i = 0; i < n; i++)
    {
        for(int j = 0; j < m; j++)
        {
            cout << A[i][j] << " ";
        }
        cout << endl;
    }
    cout << endl;
    cout << "ГЌГ*éäåì ñóììó ýëåìåГ*òîâ ГЄГ*æäîãî ñòîëáöГ* ГЁ Г§Г*ГЇГЁГёГҐГ¬ Гў Г¬Г*Г±Г±ГЁГў:"<< endl;
  for(int j = 0; j < m; j++)
    
    {
        
        S[j]=0;
        for (int i = 0; i < n; i++)
        S[j] += A[i][j];
        
    }
   
    
    for(int j = 0; j < m; j++)
    {
        cout << "Symma stolbca " << j+1 << " = " << S[j] << endl;
 
            
        
    }
 
int d=0;
int temp=S[0] ;         
            for(int j = 0; j < m; j++)
        {
            if (temp>S[j]){
            temp=S[j];
            d=j;    
            }
            
                }
            
            cout << temp<<"[" << d<<"]"<<endl;
        
for(int i=0;i<n;i++) {
    outFile <<   A[i][d];
        outFile << "\n";                   
   }
 
outFile.close ();
    delete [] A;
    getch();
}
Добавлено через 23 минуты
Я так понял, что если 1 (или больше) столбца имеют минимальные суммы одинаковые, то выводить в файл все эти столбцы.
Yandex
Объявления
12.03.2014, 15:31     В заданной матрице найти номера всех столбцов с минимальной суммой элементов
Ответ Создать тему
Опции темы

Текущее время: 01:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru