С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 06.01.2020
Сообщений: 76
1

Определить столбец с минимальным значением суммы положительных элементов (программа не работает)

09.02.2020, 13:05. Показов 614. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задание: В квадратной матрице размером К*К, имеющей имя МА содержаться целые числа. К- число строк и столбцов. Ввести элементы матрицы с клавиатуры. Определить и вывести на экран сумму положительных элементов в каждом столбце. Определить столбец с минимальным значением этой суммы и вывести его номер на экран.

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
#include <iostream>
 
using namespace std;
 
int main()
{
    
    int mas[50][50], i, j, k, s,a[50], min;
    cout<<"Введите размер массива: ";
    cin>>k;
    for(i=0;i<k;i++){
        for(j=0;j<k;j++){
            cin>>mas[50][50];
        }
    }
    s=0;
    for(j=0;j<k;j++){
        for (i=0;i<k;i++){
            if(mas[i][j]>0){
                s=s+mas[i][j];
                a[j]=s;
            }
        }
    }
    
    min=a[0];
    for(i=0;i<k;i++){
        if (a[i]<min){
            cout<<a[i];
        }
    }
 
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.02.2020, 13:05
Ответы с готовыми решениями:

Заполнить матрицу произвольного размера с клавиатуры. найти в матрице столбец с минимальным значением произведения элементов
Заполнить матрицу произвольного размера с клавиатуры. найти в матрице столбец с минимальным...

Определить сумму элементов в каждом столбце матрицы и столбец с минимальным значением этой суммы
В прямоугольной матрице размером M*K, имеющей имя MEM содержаться целые числа. М - число строк, К -...

Определить столбец матрицы с максимальным значением суммы положительных элементов
В прямоугольной матрице размером М*К, , имеющей имя ММ содержаться целые числа. М- число строк, К-...

Определить столбец матрицы с максимальным значением суммы положительных элементов
В прямоугольной матрице размером М*К, , имеющей имя ММ содержаться целые числа. М- число строк, К-...

6
Заблокирован
09.02.2020, 13:16 2
Цитата Сообщение от Shinsengumi Посмотреть сообщение
cin>>mas[50][50];
сурово
0
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
09.02.2020, 13:18 3
Цитата Сообщение от Shinsengumi Посмотреть сообщение
cin>>mas[50][50];
C++
1
cin >> mas[i][j];
Цитата Сообщение от Shinsengumi Посмотреть сообщение
s=0;
    for(j=0;j<k;j++){
        for (i=0;i<k;i++){
s нужно обнулять в цикле, а еще лучше обойтись вообще без s:
C++
1
2
3
4
5
6
7
8
for(j=0;j<k;j++){
        a[j] = 0;
        for (i=0;i<k;i++){
            if(mas[i][j]>0){
                a[j]=a[j]+mas[i][j];
            }
        }
    }
Цитата Сообщение от Shinsengumi Посмотреть сообщение
min=a[0];
    for(i=0;i<k;i++){
        if (a[i]<min){
            cout<<a[i];
        }
    }
А здесь если мы ищем минимум, то и нужно искать минимум (а выводить можно и все суммы, раз их нужно найти):

C++
1
2
3
4
5
6
7
8
min=a[0];
for(i=0;i<k;i++){
    cout<<a[i] << " ";
    if (a[i]<min){
         min = a[i];
    }
}
cout << "\nMin: " << min;
0
Эксперт CЭксперт С++
5118 / 4558 / 854
Регистрация: 07.10.2015
Сообщений: 9,462
09.02.2020, 13:19 4
Shinsengumi, Вы же считаете сумму всех положительных элементов
1) перенесите обнуление s внутрь цикла по j
2) выводить найденную сумму для каждого столбца на экран
3) ищите из найденных s минимальный, с сохранением столбца j
0
0 / 0 / 0
Регистрация: 06.01.2020
Сообщений: 76
09.02.2020, 13:53  [ТС] 5
Цитата Сообщение от elenayagubova Посмотреть сообщение
А здесь если мы ищем минимум, то и нужно искать минимум (а выводить можно и все суммы, раз их нужно найти):
Но там нужно найти столбец с минимальной суммой
0
337 / 237 / 103
Регистрация: 26.03.2019
Сообщений: 407
09.02.2020, 14:30 6
Цитата Сообщение от Shinsengumi Посмотреть сообщение
Но там нужно найти столбец с минимальной суммой
Исходная программа этого точно не делает Если нужно именно номер столбца находить, нужно просто сохранять этот номер, а не саму сумму:
C++
1
2
3
4
5
6
7
8
min=0; //здесь min - номер столбца с минимальной суммой
for(i=0;i<k;i++){
    cout<<a[i] << " ";
    if (a[i]<a[min]){
         min = i;
    }
}
cout << "\nMin: " << min;
0
7437 / 5029 / 2892
Регистрация: 18.12.2017
Сообщений: 15,692
10.02.2020, 04:43 7
Shinsengumi, столбцов с min суммой может быть несколько. такой код найдёт номер первого столбец с min суммой:
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
#include <iostream>
#include <cstdlib>
using namespace std;
 
int main()
{
    int K, min=0, sum, jmin=0;
    cout << "K="; cin >> K;
    
      int **MA = new int*[K];
    for (int i = 0; i < K; i++)
         MA[i]=new int[K];
         
    cout << "Enter integer matrix " << K << "x" << K << ":\n";     
    for(int i = 0; i < K; i++)    
        for(int j = 0; j < K; j++)
            cin >> MA[i][j];            
             
    for(int j = 0; j < K; j++)
    {
        sum=0;
        for(int i = 0; i < K; i++)        
            if (MA[i][j]>0) sum+=MA[i][j];
            cout << "Col " << j+1 << ": sum positive = " << sum << "\n"; // справочная строка  
        if (j==0 || sum<min) {min=sum; jmin=j;} 
    }
    
    cout << "NUMBER=" << jmin+1 << "\n";
 
    for (int i = 0; i < K; i++)
    delete[]MA[i];
    delete[]MA;
system("pause");
return 0;
}
если нужно выводить все номера столбцов с min суммой (если таких столбцов несколько), сообщите
0
10.02.2020, 04:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.02.2020, 04:43
Помогаю со студенческими работами здесь

Определить столбец матрицы с максимальным значением суммы положительных элементов
11. В квадратной матрице размером К*К, имеющей имя МА содержаться целые числа. К- число строк и...

Определить столбец с минимальным значением этой суммы и вывести его номер на экран
В прямоугольной матрице размером М*К, имеющей Имя МАМ содержаться целые числа.М- число строк, К-...

Определить столбец с максимальным значением суммы элементов и вывести его номер на экран
В прямоугольной матрице размером M*K, имеющее имя MA содержаться целые числа. M-число строк,К-число...

Найти в матрице строку с минимальным значением суммы элементов [tasm]
Нужно решить задачу Задать с клавиатуры матрицу размером 4х4. Найти строку с минимальным значением...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru