Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
1

Сумму элементов в тех столбцах, которые не содержат отрицательных элементов и минимум среди сумм элементов диагоналей

04.12.2017, 19:15. Просмотров 1208. Ответов 13
Метки нет (Все метки)

Дана целочисленная квадратная матрица. Найти 1. сумму элементов в тех столбцах, которые не содержат отрицательных элементов и 2. минимум среди сумм элементов диагоналей матрицы.

Нужно каждый пункт оформить в виде отдельной функции.

Я попытался сделать сам, да что-то не получается. Выдает ошибку: error C2664: sum: невозможно преобразовать параметр 1 из 'int [4][4]' в 'int **'

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
#include <iostream>
#include <cmath>
 
using namespace std;
 
const int N = 4;    
int sum(int** array, const int n); 
 
int main()
{
    int array[N][N] = {
        {12,  -6,   6,   8},
        {8,   7,  -6,   5},
        {0,   7,  -6,  -9},
        {1, -10,  -8,   8},
    };
      cout << sum(arr, N) << endl;       
      return 0;  
}   
int sum(int** arr, const int n) 
{  
    int summ = 0;  
    for (int i = 0; i < n; i++)     
    {        
        for (int j = 0; j < n; j++)
        {
            if (arr[i][j] < 0)
            {
               summ = 0;
               break;
            }
              summ += arr[i][j];     
        }
    } 
    return summ; 
}
Прошу помогите с задачками.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.12.2017, 19:15
Ответы с готовыми решениями:

Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов
Дана целочисленная квадратная матрица. Определить: 1) сумму элементов в тех столбцах, которые не...

Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов
эту задачу простым языком в Delphi Дана целочисленная квадратная матрица. Определить: 1.) сумму...

Определить сумму элементов в тех столбцах, которые не содержат отрицательных элементов
Дана матрица A(n,m). Определить сумму элементов в тех столбцах, которые не содержат отрицательных...

Найти сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Дана целочисленная квадратная матрица. Определить: 1) Сумму элементов в тех столбцах, которые не...

13
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
04.12.2017, 21:37 2
Можно так:
C++
1
int sum(int array[N][N])
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
05.12.2017, 16:52  [ТС] 3
Все равно не работает, такая же ошибка
0
Эксперт C
24565 / 15185 / 3210
Регистрация: 24.12.2010
Сообщений: 32,589
05.12.2017, 16:59 4
Цитата Сообщение от Shuga Посмотреть сообщение
Все равно не работает, такая же ошибка
В двух местах исправил?
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
05.12.2017, 18:07  [ТС] 5
Да, но я перезагрузил программу и теперь такая ошибка: "sum: функция не принимает 2 аргументов"
0
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
05.12.2017, 18:20 6
Shuga, так зачем вы передаёте функции два аргумента, если она принимает только один?

Добавлено через 1 минуту
Второй аргумент (размер матрицы) не нужен, поскольку он зафиксирован константой N.
0
Эксперт C
24565 / 15185 / 3210
Регистрация: 24.12.2010
Сообщений: 32,589
05.12.2017, 18:34 7
Цитата Сообщение от Shuga Посмотреть сообщение
и теперь такая ошибка
Хорошо бы показать новый код... Ибо чего вы там наисправляли мы же не можем угадать.
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
05.12.2017, 19:00  [ТС] 8
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
#include <iostream>
#include <cmath>
 
using namespace std;
 
const int N = 4;    
int sum(int array[N][N]); 
 
int main()
{
    int array[N][N] = {
        {12,  -6,   6,   8},
        {8,   7,  -6,   5},
        {0,   7,  -6,  -9},
        {1, -10,  -8,   8},
    };
    cout << sum(array[N][N]) << endl;       
      return 0;  
}   
int sum(int array[N][N])
{  
    int summ = 0;  
    for (int i = 0; i < N; i++)     
    {        
        for (int j = 0; j < N; j++)
        {
            if (array[i][j] < 0)
            {
               summ = 0;
               break;
            }
              summ += array[i][j];     
        }
    } 
    return summ; 
}
error C2664: sum: невозможно преобразовать параметр 1 из 'int' в 'int [][4]'
0
Эксперт C
24565 / 15185 / 3210
Регистрация: 24.12.2010
Сообщений: 32,589
05.12.2017, 19:13 9
Cтрока 17
C++
1
cout << sum(array) << endl;
Ты передавал не массив, а 1 элемент
0
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
05.12.2017, 19:15  [ТС] 10
Я так пробовал, но выводит 0, а это ведь неправильно
0
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
05.12.2017, 19:38 11
Цитата Сообщение от Shuga Посмотреть сообщение
а это ведь неправильно
С точки зрения языка всё правильно.

Ошибка в логике программы, в самом алгоритме.

Добавлено через 2 минуты
В вашей программе функция sum просматривает строки, а не столбцы. А в заданной матрице нет строк, не содержащих отрицательные элементы. Поэтому и сумма равна нулю.

Чтобы найти сумму столбцов, нужно поменять местами циклы по i и по j.
1
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 14
05.12.2017, 19:44  [ТС] 12
Пробовал итак, все равно 0

Секундочку
У меня там опечатка была оказывается, все работает.
Огромное спасибо!

Добавлено через 3 минуты
А ко второму пункту как подойти, можете подсказать?
0
1118 / 931 / 429
Регистрация: 25.12.2016
Сообщений: 3,030
05.12.2017, 20:02 13
Цитата Сообщение от Shuga Посмотреть сообщение
А ко второму пункту как подойти, можете подсказать?
Я не совсем понял, что там надо сделать.
0
Эксперт C
24565 / 15185 / 3210
Регистрация: 24.12.2010
Сообщений: 32,589
05.12.2017, 21:26 14
Цитата Сообщение от Shuga Посмотреть сообщение
2. минимум среди сумм элементов диагоналей матрицы
Какие диагонали? Только 2? Или "косые" тоже рассматриваются?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.12.2017, 21:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Найти сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
На CodeBlock Каждый пункт нижеприведенного задания оформить в виде функции. Все необходимые...

В матрице найти сумму элементов в тех столбцах, которые не содержат отрицательных элементов
Ни разу не было с++, а тут пришла в институт и сразу лабораторные работы подсунули(Не могу понять,...

Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Дана целочисленная квадратная матрица.Определить: 1)сумму элементов в тех столбцах,которые не...

Определить сумму элементов в тех столбцах матрицы, которые не содержат отрицательных элементов
Помогите пожалуйста. Дана целочисленная квадратная матрица.Определить: 1) сумму элементов в тех...


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

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

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