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

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

Войти
Регистрация
Восстановить пароль
 
nowichok2
1 / 1 / 0
Регистрация: 09.03.2009
Сообщений: 6
#1

матрица с массивами - C++

14.04.2009, 16:50. Просмотров 445. Ответов 3
Метки нет (Все метки)

Задание:
дана челочисленная квадратная матрица. Определить
1)сумму элементов в тех столбцах, которые не содержат отрицательных элементов
2) минимум среди сумм модулейдиагоналей, паралельных побочной диагонали матрицы
3) программу записать в статическом и в динамическом масиве(должнобыть 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
#include <vcl.h>
 
#include <iostream.h>
#include <stdio.h>
 
 
#define SIZE 4
 
int array[SIZE][SIZE] = {{10, 5, -5, 7}, {5, 8, 3, 6}, {-5, 9, 4, 3}, {-5, 7, -5, 7}};
 
int main()
{   float s;
    int c, r, sum;
    for (c = 0; c < SIZE; c++) {
        sum = 0;
        for (r = 0; r < SIZE; r++)
            if (array[r][c] > 0) sum += array[r][c];
            else {
                sum = -1;
                break;
            }
        if (sum >= 0) printf("sum of %d column is %d\n", c + 1, sum);
    }
    
    cin>>s;
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.04.2009, 16:50     матрица с массивами
Посмотрите здесь:

Работа с многомерными массивами. Дана матрица размером М * N. Сформировать из этой матрицы вектор по правилу - C++
Дано матрицу размером М * N. Сформировать из этой матрицы вектор по правилу: первые N элементов вектора - это элементы матрицы первого...

Задание с массивами. - C++
Дан массив {3.24, -0.16, 2.28, -0.16, -3.22, 7.14, 0.88, -3.20, 0.99, 4.15} и в нём нужно :сжать массив, удалив из него все элементы,...

Задача с массивами. - C++
Выяснить является ли массив размерности N*N магическим квадратом.(В магическом квадрате суммы элементов по строкам,по столбцам,по главной и...

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

Задача с массивами - C++
Создать int массив размером 10. Заполнить его случайными числами в диапазоне от 0 до 9. Создать второй массив, элементами которого будут...

задача с массивами - C++
написать программу , которая проверяет , представляют ли элементы введенного с клавиатуры массива возрастающую последовательность .

Проблемы с массивами - C++
Здравствуйте, уважаемые. Помогите пожалуйста с задачкой. Создать программу, которая вводит c клавиатуры двумерный массив целых чисел,...

3 задачки с массивами - C++
Здравствуйте. Помогите в написании кода. Сложно дается С++ Первый код я написал (не сам, исходя из примеров в интернете). Но вот хотел бы...

Работа с массивами - C++
Подскажите пожалуйста, что значит &quot;**&quot; в данной строке? void Array(int ** array, int size); Спасибо!

Задание с массивами - C++
Помогите пожалуйста с заданием Дан одномерный массив, состоящий из N вещественных элементов. 5.1. Ввести массив с клавиатуры. 5.2....

программа с массивами - C++
Всем привет. Не получается скомпилировать прогу, выдаёт ошибку что то типа ошибка в переменной Программа с циклами.. Немного о...

Проблема с массивами - C++
#include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;ctime&gt; #include&lt;fstream&gt; using namespace std; ofstream fl; void f1...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
14.04.2009, 16:57     матрица с массивами #2
Динамически выделяй память под массив.
C
1
2
3
4
5
6
#include <stdlib.h>
 
int **array, i;
array = (int **) malloc(N * sizeof(int*);
for(i = 0; i < N; i++)
    array[i] = (int *) malloc(N * sizeof(int));
В остальном все так же.
nowichok2
1 / 1 / 0
Регистрация: 09.03.2009
Сообщений: 6
14.04.2009, 17:49  [ТС]     матрица с массивами #3
Цитата Сообщение от Gravity Посмотреть сообщение
Динамически выделяй память под массив.
C
1
2
3
4
5
6
#include <stdlib.h>
 
int **array, i;
array = (int **) malloc(N * sizeof(int*);
for(i = 0; i < N; i++)
    array[i] = (int *) malloc(N * sizeof(int));
В остальном все так же.
если я правильно тебя понял то код должен выглядеть так:
[C]
#include <vcl.h>

#include <iostream.h>
#include <stdio.h>


#define SIZE 4

int **array, i;
array = (int **) malloc(N * sizeof(int*);
for(i = 0; i < N; i++)
array[i] = (int *) malloc(N * sizeof(int));

int main()
{ float s;
int c, r, sum;
for (c = 0; c < SIZE; c++) {
sum = 0;
for (r = 0; r < SIZE; r++)
if (array[r][c] > 0) sum += array[r]
C
1
2
3
4
5
6
7
8
9
10
11
;
            else {
                sum = -1;
                break;
            }
        if (sum >= 0) printf("sum of %d column is %d\n", c + 1, sum);
    }
    
    cin>>s;
    return 0;
}
Добавлено через 1 минуту 20 секунд
Цитата Сообщение от Gravity Посмотреть сообщение
Динамически выделяй память под массив.
C
1
2
3
4
5
6
#include <stdlib.h>
 
int **array, i;
array = (int **) malloc(N * sizeof(int*);
for(i = 0; i < N; i++)
    array[i] = (int *) malloc(N * sizeof(int));
В остальном все так же.
если я правильно тебя понял то код должен выглядеть так:

#include <vcl.h>

#include <iostream.h>
#include <stdio.h>


#define SIZE 4

int **array, i;
array = (int **) malloc(N * sizeof(int*);
for(i = 0; i < N; i++)
array[i] = (int *) malloc(N * sizeof(int));

int main()
{ float s;
int c, r, sum;
for (c = 0; c < SIZE; c++) {
sum = 0;
for (r = 0; r < SIZE; r++)
if (array[r][c] > 0) sum += array[r]
C
1
2
3
4
5
6
7
8
9
10
11
;
            else {
                sum = -1;
                break;
            }
        if (sum >= 0) printf("sum of %d column is %d\n", c + 1, sum);
    }
    
    cin>>s;
    return 0;
}
Monte-Cristo
2787 / 1373 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
14.04.2009, 18:33     матрица с массивами #4
malloc - сишный вариант... в си++ чаще используется new
и старайтесь не использовать iostream и stdio в одной программе.. это не рационально...

вот ваш код должен выглядеть примерно так:

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
#include <iostream>
using namespace std;
 
int main()
{   
  float s;
  int c, r, sum;
  int m, n;
  
  // узнаем размеры матрицы
  cout << "Vvedite razmer matritxi cherez probel\n";
  cin >> m >> n;
  
  // создаем матрицу
  int **arr = new int*[m];
  for (int i=0; i<m; i++)
    arr[i] = new int[n];
  
  cout << "Vvedite elementi strok cherez probel" << endl;
  for (int i=0; i<m; i++)
  {
      for(int j=0; j<n; j++)
      {
          cout << "Array[" << i << "][" << j << "] = ";
          cin >> arr[i][j];
      }
  }
  
  for (c = 0; c < m; c++) 
  {
    sum = 0;
    for (r = 0; r < n; r++)
      if (arr[r][c] > 0) sum += arr[r][c];
        else 
        {
          sum = -1;
          break;
        }
        if (sum >= 0) cout << "\nsum of " << c+1 << " column is " << sum;
  }
 
  cin >> s;
  delete []arr;
  return 0;
}
Yandex
Объявления
14.04.2009, 18:33     матрица с массивами
Ответ Создать тему
Опции темы

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