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

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

Войти
Регистрация
Восстановить пароль
 
РИУ
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 4
#1

Выделение динамической памяти для матрицы - C++

27.12.2011, 17:18. Просмотров 766. Ответов 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
40
41
42
#include <stdio.h>
#include <stdlib.h>
#include <iostream>[ATTACH]
#define S 9
int A[S][S];
 int main()
{ 
    int sum1=0 ,sum2=0;
    int i,j,k;
    for (i=0; i<S; i++)
    {
        printf("\n");
      for (j=0; j<S; j++)
     {
       A[i][j]=rand()%99;
        printf("%2d  ",A[i][j]);
     }
    }
   k=1;
        while (k<=4)
        {
                j=k; sum1=0;sum2=0;
                for (i=k-1;i>=0;i--)
                {
                        j++;
                        sum1=sum1+A[i][j]+A[j][i];
                        sum2=sum2+A[S-1-i][S-1-j]+A[S-1-j][S-1-i];
                }
                A[k][k]=sum1;
                A[S-1-k][S-1-k]=sum2;
                k++;
        }
        printf("\n\n\n\n\n");
        for (i=0; i<S; i++)
           {
             for (j=0; j<S; j++)
                printf("%2d  ",A[i][j]);
        printf("\n");
        }
        system("pause");
         return 0;
}
Помогите пожалуйста. Заранее благодарен.
0
Изображения
 
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.12.2011, 17:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Выделение динамической памяти для матрицы (C++):

Выделение динамической памяти для матрицы - C++
Здравствуйте! Подскажите, пожалуйста, что делаю не так..написала программу, которая считывает двумерный массив...с помощью операторов...

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

Выделение динамической памяти для char - C++
Здравствуйте, возник вопрос: как выделить память для char массива? Вот, что делаю я: #include &quot;stdafx.h&quot; #include&lt;iostream&gt; ...

Выделение динамической памяти для char[n]* - C++
Есть количество цитат (quote), которые должны быть типа char* Есть переменная с колличеством цитат (quoteNum) Вопрос: как выделить...

Выделение динамической памяти для массива точек - C++
Доброго времени суток. Вот у нас есть структура точка struct point { double x,y; } p;

Выделение динамической памяти для двумерного массива. - C++
#include &lt;iostream&gt; int main() { setlocale( LC_ALL,&quot;Russian&quot; ); int N, M; std::cout &lt;&lt; &quot;Введите кол-во строк в массиве:...

4
Dejust
49 / 49 / 1
Регистрация: 31.01.2011
Сообщений: 156
27.12.2011, 17:26 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
#include <stdlib.h>
#include <iostream>
 
 int main()
{ 
    int S;
    std::cin >> S;
    int **A = new int* [S];
    for(int i = 0; i < S; ++i)
        A[i] = new int;
// ... Тут остальной код
    for(int i = 0; i < S; ++i)
         delete A[i];
    delete [] A;
}
Как-то так, в начале выделяем память под матрицу, в конце освобождаем занятую память.
0
РИУ
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 4
27.12.2011, 17:44  [ТС] #3
для 1 курса сложновато написано вроде...
меня больше интересует как переделать алгоритм вычисления суммы диагоналей(
0
dimcoder
Полярный
466 / 439 / 68
Регистрация: 11.09.2011
Сообщений: 1,137
27.12.2011, 18:05 #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
void Min(int n)
{
        int j,p;
        int sum[10];
 
        for (i = 0; i < 10; i++)
           sum[i] = 0;
 
        int k = 0;
 
        for (i = 1; i <= n-2; i++)
        {
           for (j = i; j >= 0; j--)
              sum[k] += abs(A[j][i-j]);
           k++;
        }
 
        int otn;
 
        for (i = n-1; i > 1; i--)
        {
           otn = 1;
           for (j = i-1; j < n; j++)
           {
              sum[k] += abs(A[j][n-otn]);
              otn++;
           }
           k++;
        }
В массиве a - сумма элементов побочных диагоналей, может к программе не относится, но думаю в суть циклов вникните.
0
РИУ
0 / 0 / 0
Регистрация: 26.12.2011
Сообщений: 4
27.12.2011, 18:38  [ТС] #5
спасибо, буду пробовать)
0
27.12.2011, 18:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2011, 18:38
Привет! Вот еще темы с ответами:

Выделение и удаление памяти, выделенной для динамической строки - C++
Данная функция производит ввод и собственно контроль ввода (размер массива от 1 до 20, иначе должна выдавать ошибку; при вводе букв также...

Выделение динамической памяти для чтения каждой структуры из файла - C++
Здравствуйте! Никак не получается выделить динамическую память под каждую структуру из файла, учитывая, что я не знаю сколько структур в...

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

выделение динамической памяти - C++
помогите пожалуйста , нужно написать функцию для ввода новой матрицы, не получается выделить под него память. класс: mymatrix ::...


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

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

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