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

Дана целочисленная квадратная матрица произвольного размера. - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
I_see_you
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 49
26.09.2011, 19:53     Дана целочисленная квадратная матрица произвольного размера. #1
Дана целочисленная квадратная матрица произвольного размера. Значения элементов матрицы задаются случайным образом. Разработать программу, позволяющую находить сумму элементов матрицы, расположенных выше главной диагонали и ниже побочной диагонали.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.09.2011, 19:53     Дана целочисленная квадратная матрица произвольного размера.
Посмотрите здесь:

Дана целочисленная квадратная матрица C++
Дана целочисленная квадратная матрица. C++
Дана целочисленная квадратная матрица C++
Дана целочисленная квадратная матрица C++
C++ Дана целочисленная квадратная матрица
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
26.09.2011, 20:39     Дана целочисленная квадратная матрица произвольного размера. #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
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
#define N 100
int main()
{
    int A[N][N],i=0,j=0,S1=0,S2=0,n;
    //A[N][N]-matriza, i,j-stroca i stolbez, S1-summa vyshe gl
    //S2-summa nyzhe pobochnoy
    cout<<"vvedite razmer"<<endl;
    cin>>n;
    //zapolnenie massiva
    for(i=0;i<n;i++)
    {
    for(j=0;j<n;j++)
    {
                    A[i][j]=rand()%10;
                    cout<<A[i][j]<<"  ";
                    }
                    cout<<endl;
                    }
                    
    //summa elementov vyshe glavnoy diagonaly
    for(i=0;i<n;i++)
    for(j=i+1;j<n;j++)
    {
                    S1+=A[i][j];
                    }
    
    //summa elementov nyzhe pobochnoy diagonaly
    for(i=0;i<n;i++)
    for(j=0;j<i;j++)
    {
                    S2+=A[i][j];
                    }
    cout<<S1<<endl;
    cout<<S2;
    getch();
    return 0;
}
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.09.2011, 21:17     Дана целочисленная квадратная матрица произвольного размера. #3
Nijaz, любой адекватный компилятор, более-менее соответствующий стандарту поперхнется вашим кодом, и обругает вас ошибками. Во-первых не iostream.h, а iostream. Во-вторых, на все cout и cin сругнется из-за отсутствия std::. Если лень писать перед каждым std:: (ей богу, лениться набирать лишние пять символов - я наверное перегнул), пишите после хеадеров using namespace std;
Ну и так, к слову, разберитесь с форматированием кода. Читать не очень удобно.
I_see_you
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 49
26.09.2011, 22:32  [ТС]     Дана целочисленная квадратная матрица произвольного размера. #4
Товарищ Soon, не могли бы вы написать программу так, как нужно...))Ибо здавать уже завтра, а рабочей задачи нет...До этого в основном работали на Делфи...А тут такой подарочек приподнесли...Грубо говоря я нихрена не понимаю в "Си"...Буду дико благодарен...
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
26.09.2011, 23:14     Дана целочисленная квадратная матрица произвольного размера. #5
Я, конечно, не мега тру, по созданию программ на Си, но вот, что-то накидал.
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
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
 
main()
{
    int n;
    int **arr;
    int i, j;
    int sumAbove = 0, sumBelow = 0;
    srand(time(0));
    printf("enter the size of array: ");
    scanf("%d", &n);
    arr = (int**) malloc (n * sizeof(int*));
    for(i = 0; i < n; ++i)
    {
        arr[i] = (int*) malloc (n * sizeof(int));
        for(j = 0; j < n; ++j)
        {
            arr[i][j] = rand() % 100 - 50;
            printf("%d ", arr[i][j]);
            if(j > i)
                sumAbove += arr[i][j];
            if(j > (n - i - 1))
                sumBelow += arr[i][j];
        }
        printf("\n");
    }
    printf("\nsumAbove: %d, sumBelow: %d", sumAbove, sumBelow);
    getch();
}
Советую проверить сумму ниже побочной диагонали. Я, конечно, просчитал на бумаге, да и тест один прогнал, но все-таки.
Nijaz
34 / 34 / 9
Регистрация: 16.12.2010
Сообщений: 100
27.09.2011, 16:22     Дана целочисленная квадратная матрица произвольного размера. #6
soon, я не знаю на каком "адекватном компиляторе" ты компилируешь, но не зная нечего тут критиковать. я работаю на DevCpp
I_see_you
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 49
27.09.2011, 18:42  [ТС]     Дана целочисленная квадратная матрица произвольного размера. #7
Всем, конечно, спасибо, но задача не доделана...Должны выполняться оба условия...Тобишь находиться сумма между главной(выше ее) и побочной(ниже) диагонали...то-есть, если будет матрица 3х3, то в итоге будет охвачен только 1 элемент (центральный справа).
soon
27.09.2011, 18:46
  #8

Не по теме:

Nijaz, предлагаю не оффтопить в теме. Отписал в ЛС.

Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
27.09.2011, 18:50     Дана целочисленная квадратная матрица произвольного размера. #9
I_see_you, а вы знаете что такое матрица? и где у нее главная и побочная диагональ?
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 18:50     Дана целочисленная квадратная матрица произвольного размера. #10
Т.е. вам нужно объединение 2-х множеств?
Меняйте
C
1
2
3
4
if(j > i)
    sumAbove += arr[i][j];
if(j > (n - i - 1))
    sumBelow += arr[i][j];
на
C
1
2
if((j > i) || (j > (n - i - 1)))
    sum += arr[i][j];
Соответственно нужно добавить переменную sum, инициализировать её нулем, а переменные sumBelow и sumAbove можно убрать.
upd/ Так, не до конца понял сообщение #7. Приведите пример матрицы и вывод результата.
Nursik77
 Аватар для Nursik77
273 / 233 / 21
Регистрация: 05.04.2011
Сообщений: 645
27.09.2011, 19:06     Дана целочисленная квадратная матрица произвольного размера. #11
Наверное имеется ввиду пересечение элементов выше главной и ниже побочной.
К примеру матрица 3х3:
1 2 3
4 5 6
7 8 9
матрица 4х4:
1 2 3 4
5 6 7 8
9 1 2 3
4 5 6 7
матрица 5х5:
1 2 3 4 5
6 7 8 9 1
2 3 4 5 6
7 8 9 1 2
3 4 5 6 7


I_see_you, так?
I_see_you
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 49
27.09.2011, 19:08  [ТС]     Дана целочисленная квадратная матрица произвольного размера. #12
Именно...Я вроде как популярно объяснил...Х3 почему проблема в восприятии).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.09.2011, 19:12     Дана целочисленная квадратная матрица произвольного размера.
Еще ссылки по теме:

C++ Дана целочисленная квадратная матрица
Дана целочисленная квадратная матрица C++
Квадратная матрица произвольного размера C++

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

Или воспользуйтесь поиском по форуму:
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
27.09.2011, 19:12     Дана целочисленная квадратная матрица произвольного размера. #13
Цитата Сообщение от I_see_you Посмотреть сообщение
Х3 почему проблема в восприятии
Не проснулся. Руки что-то наколотили, пока мозг растекался по столу. Сейчас вроде обратно залился в черепушку, и начал осмыслять происходящее. Наверное, будет так
C
1
2
if((j > i) && (j > (n - i - 1)))
    sum += arr[i][j];
Yandex
Объявления
27.09.2011, 19:12     Дана целочисленная квадратная матрица произвольного размера.
Ответ Создать тему
Опции темы

Текущее время: 10:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru