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

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

Восстановить пароль Регистрация
 
кх
0 / 0 / 0
Регистрация: 18.03.2013
Сообщений: 75
22.04.2013, 17:56     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов #1
дано двумерный массив целых чисел найти столбик с минимальной суммой элементов
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.04.2013, 17:56     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов
Посмотрите здесь:

C++ Дано двумерный массив целых чисел. В каждом столбце найти сумму и количество чисел.(исправить)
C++ В двумерном N*K массиве целых чисел поменять строку с максимальной суммой элементов со строкой с минимальной суммой элементов.
Дан двумерный массив. Найти строку с минимальной суммой элементов C++
C++ Массив: Найти столбик с минимальной суммой элементов
C++ Дано двумерный массив целых чисел. Найти сумму произведений всех строк
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
22.04.2013, 19:24     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов #2
Заполняете массив, а после пишите следующее:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
    int sum = 0, pos = 0, minSum = -1000; // munSum (минимальная сумма) изначально 
                                          // должна быть меньше любой из сумм в столбцах
    for (int i=0; i<n; ++i)
    {
        for (int j=0; j<n; ++j)
            sum +=a[j][i];
        if (minSum < sum)
        {
            minSum = sum;
            pos = i;
        }
        sum = 0;
    }
    std::cout << minSum << ' ' << pos+1;
BodyRockSam
0 / 0 / 0
Регистрация: 01.04.2013
Сообщений: 2
24.04.2013, 12:45     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов #3
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
#include <iostream>
#include <ctime>
#include <climits>
 
const int Str = 4;
const int Col = 5;
 
void print(int * di)
{
    for (int i = 0; i < Str; ++i)
    {
        for (int j = 0; j < Col; ++j)
            std::cout << *(di + i * Col + j) << '\t';
        std::cout << '\n';
    }
}
 
 
int main()
{
    /*******************************/
    int di[Str][Col];
    srand(unsigned(time(0)));
    for (int i = 0; i < Str; ++i)
        for (int j = 0; j < Col; ++j)
            di[i][j] = rand() % 26;
        print(di[0]);
    /******************************/
    int Min = INT_MAX; // summa
    int ColumnNum = 0; // Nomer stolbika
    for (int i = 0; i < Col; ++i)
    {
        int Res = 0;
        for (int j = 0; j < Str; ++j)
            Res += di[j][i];
        if (Res < Min)
        {
            Min = Res;
            ColumnNum = i;
        }
    }
    std::cout << "Min Column: " << ColumnNum + 1 << ", Sum: " << Min << '\n';
    return 0;
Как вариант.
Olivеr
 Аватар для Olivеr
411 / 407 / 13
Регистрация: 06.10.2011
Сообщений: 830
13.05.2013, 20:59     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов #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
#include <iostream>
#include <vector>
#include <cstdlib>
#include <ctime>
#include <algorithm>
#include <limits>
#include <iomanip>
 
using namespace std;
 
typedef int vecType;
typedef vector<vecType> oneDimenVec;
typedef vector<oneDimenVec> twoDimenVec;
 
int main()
{
    srand(time(0));
    twoDimenVec vec(5, oneDimenVec(5));
 
    for (auto &v : vec) {
        generate(v.begin(), v.end(), []() { return rand() % 10 + 90; });
        for_each(v.begin(), v.end(), [](const vecType &val) { cout << setw(3) << val; } );
        cout << endl;
    }
 
    vecType sum1 = 0, sum2 = INT_MAX, index = 0;
    for (size_t i = 0; i != vec[0].size(); i++) {
        for (size_t j = 0; j != vec.size(); j++)
            sum1 += vec[j][i];
        if (sum1 < sum2) {
            index = i;
            sum2 = sum1;
        }
        sum1 = 0;
    }
 
    cout << index;
    return 0;
}
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
14.05.2013, 02:12     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов #5
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
#include <iostream>
#include<stdlib.h>
#include<time.h>
 
using namespace std;
 
int main()
{
    const int N = 8;
    const int M = 5;
 
    int A[N][M];
    srand(time(NULL));
    for(int i=0;i<N;i++)
    {
        for(int j=0;j<M;j++)
         {
            A[i][j]=rand()%20;//заполняем
            cout<<A[i][j]<<"\t";// выводим сформированный массив
         }
        cout<<"\n";
    }
cout<<"\n";
int sum=0;
    for (int i = 0; i < M; ++i)
    {
        for (int j = 0; j < N; ++j)
           {
             sum += A[j][i];//накапливаем сумму столбцов
           }
    }
    int min = sum;//сумма
    int minSt = 0,rez = 0;
    for (int i = 0; i < M; ++i)
    {
       rez = 0;
        for (int j = 0; j < N; ++j)
            rez += A[j][i];//сумма столбца
        if (rez < min)
        {
            min = rez;//мин сумма
            minSt = i;
        }
    }
   cout << "Min St =  " << minSt + 1 << " Suma min =  " << min <<"\n";
    return 0;
}
Yandex
Объявления
14.05.2013, 02:12     дано двумерный массив целых чисел найти столбик с минимальной суммой элементов
Ответ Создать тему
Опции темы

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