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

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

Войти
Регистрация
Восстановить пароль
 
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
#1

Двумерный массив: целочисленная квадратная матрица - C++

11.06.2010, 13:48. Просмотров 881. Ответов 6
Метки нет (Все метки)

Данная целочисленные квадратная матрица.
Вычислить:
1) сумму элементов в тех строках, которые не содержат отрицательных элементов
2) минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы.
Вот ещё программка нужна, теперь уже массив двумерный
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.06.2010, 13:48
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Двумерный массив: целочисленная квадратная матрица (C++):

Дана целочисленная квадратная матрица А. Получить массив В, элементами которого являются суммы знач - C++
Дана целочисленная квадратная матрица А. Получить массив В, элементами которого являются суммы значений элементов строк матрицы А,...

Двумерный массив(квадратная матрица) - C++
Мне нужна помощь в выполнении следующего задания:дано двумерный массив(квадратная матрица,которую должен вводить пользователь-тоесть...

Двумерный массив (квадратная матрица) - C++ - C++
Помогите Вот задача 6. В квадратной матрице найти С6х6 сумму элементов, находящихся по периметру.

целочисленная квадратная матрица - C++
дана целочисленная квадратная матрица определить: максимум ср.сумм модулей элементов которые находятся: 1)на побочной диагонали ...

целочисленная квадратная матрица - C++
задача-дана целочисленная квадратная матрица.определить: 1)сумму чётных элементов каждого столбца; 2)поменять местами элементы строки К...

Целочисленная квадратная матрица. - C++
Дана целочисленная квадратная матрица. Определить: произведение элементов в тех строках, которые не содержат отрицательных элементов;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
//Александр
6 / 6 / 0
Регистрация: 15.04.2010
Сообщений: 151
11.06.2010, 15:57 #2
у меня есть код для такого условия:
Дана целочисленная квадратная матрица. Определить:
1. сумму элементов в тех столбцах, которые не содержат отрицательных элементов;
2. минимум среди сумм модулей элементов диагоналей, параллельных побочной диагонали матрицы.
немного переделаешь и будет то что тебе нужно
вот код:
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
#include <iostream>
#include <stdlib.h>
#include <math.h>
#include<clocale>
#include <iomanip>
using namespace std;
//сумма элементов
 
int summa (int **ar,int n)
{int k,sum,i,j;
for (i=0;i<=n; i++) {
k=1; sum=0;
  for (j=0;j<=n; j++)
  {
      if (ar[j][i]<0){
         sum=0; break; }else 
        sum+=ar[j][i]; }
  cout<<sum<<' '; }
 
return(0);
}
// минимум сум диагоналей
int minimum(int **ar, int n)
{
int i = 0;
int j = 0;
int k = 0;
long currsum = 0;
long maxsum = ar[n][n]; 
// Пробегаем левую верхнюю часть матрицы
for ( i = 0; i < n; i++)
{
long currsum = 0;
for ( j = i, k = 0; (j >= 0) && (k <= i); j--, k++)
{
currsum += abs(ar[j][k]);
}
if (currsum < maxsum)
maxsum = currsum;
}
// Пробегаем правую нижнюю часть матрицы
for ( i = n; i >= 1; i--)
{
long currsum = 0;
for ( j = i, k = n; (j <= n) && (k >= i); j++, k--)
{
currsum += abs(ar[j][k]);
} 
if (currsum < maxsum)
maxsum = currsum;
} 
 
return(maxsum);
}
int main()
{setlocale(LC_ALL, "rus");
int i,j,n,h,d;
cin>>n;
//создаю матрицу
int **ar=new int *[n];
for (i=0;i<=n; i++)
ar[i]= new int [n];
n=n-1;
//ввод элементов
for (i=0;i<=n; i++)
for (j=0;j<=n; j++)
cin>>ar[i][j];cout<<"----------------------Результат----------------------\n";
// вызов функций
h=summa(ar,n);
d=minimum(ar,n);
cout<<"min="<<   setw(3)<<d<<endl;
 
//освобождаю память
for (i=0;i<=n; i++)
delete [] ar[i];
return(0);
}
1
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
12.06.2010, 11:14  [ТС] #3
Всё равно я что-то не помню правильно она работает или нет, да и переделать не пойму как
помогите, кто чем может ещё...
0
CyBOSSeR
Эксперт C++
2303 / 1673 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
12.06.2010, 11:49 #4
Цитата Сообщение от Best-pm07 Посмотреть сообщение
сумму элементов в тех строках, которые не содержат отрицательных элементов
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <algorithm>
#include <functional>
 
int Sum(const int* const* matrix, size_t n, size_t m) {
  int result = 0;
  
  for (size_t i = 0; i < n; ++i)
    if (std::find_if(matrix[i], matrix[i] + m, std::bind2nd(std::less<int>(), 0)) == matrix[i] + m)
      result += std::accumulate(matrix[i], matrix[i] + m, 0);
 
  return result;
}
0
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
13.06.2010, 14:29  [ТС] #5
CyBOSSeR, не пойму с библиотеками и код не пойму(
обычно работаю только с iostream
может кто ещё поможет? а за одно и попрактикуется?

Добавлено через 37 минут
вот код, который:
определяет максимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы
Мне нужно переделать, чтобы определяло минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы и + Соединить с первой частью задания от кода //Александр
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
#include <iostream.h>
#include <stdlib.h>
void main()
{
          int i=0,j=0,n=1;
          int max=0, temp=0;
          int array_a[6][6];
          for(i=0;i<6;i++)
                     for(j=0;j<6;j++)
                            array_a[i][j]=rand()%10;
          for(i=0;i<6;i++)
          {
                for(j=0;j<6;j++)
                            cout<<array_a[i][j]<<" ";
                cout<<"\n";
          }
          i=j=0;
        do
          {
                temp+=array_a[i][j];
 
                     if((j==5)||(i==0))
                {
                            cout<<"\nÄèГ*ГЈГ®Г*Г*ëü - "<<n<<" = "<<temp;
                            if(temp>max)
                                    max=temp;
                        temp=0;
                                n++;
                     }
                if((i==0)&&(j<5))
                     {
                        
                                i=++j;
                                j=0;
                     }
                     else if(j==5){j=++i;i=5;}
                     else{i--;j++;}
          }while((i<6)&&(j<6));
          cout<<"\n"<<max;
}
прошу помочь...

Добавлено через 14 часов 16 минут
пожалуйста
0
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
15.06.2010, 22:29  [ТС] #6
не понимаю в чем дело
как сделать?
0
Best-pm07
..:::BesT:::..
7 / 7 / 1
Регистрация: 19.03.2009
Сообщений: 195
20.06.2010, 16:34  [ТС] #7
пожалуйста
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2010, 16:34
Привет! Вот еще темы с ответами:

Целочисленная квадратная матрица - C++
Даны: натуральное число m, челые числа а1, ... , аm и челочисленная квадратная матрица порядка m. Строку с номером i матрицы назовём...

Целочисленная квадратная матрица - C++
Дана целочисленная квадратная матрица. Определить колличество строк, содержащих хотя бы один нулевой элемент.

квадратная целочисленная матрица - C++
Добрый день, товарищи! Очень нуждаюсь в вашей помощи... Задание таково: Квадратная целочисленная матрица. Обязательны функции-члены...

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


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
20.06.2010, 16:34
Ответ Создать тему
Опции темы

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