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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.90
I_see_you
0 / 0 / 0
Регистрация: 23.09.2010
Сообщений: 49
#1

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

26.09.2011, 19:53. Просмотров 1253. Ответов 12
Метки нет (Все метки)

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

Дана целочисленная квадратная матрица C++
Дана целочисленная квадратная матрица. C++
Дана целочисленная квадратная матрица 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++
Дана целочисленная квадратная матрица 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     Дана целочисленная квадратная матрица произвольного размера.
Ответ Создать тему
Опции темы

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