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

Объясните задачу. Квадратная матрица - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти количество строк матрицы, элементы которых упорядочены по возрастанию. http://www.cyberforum.ru/cpp-beginners/thread527367.html
помогите докончить Matrix42. Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию. #include<iostream.h> #include<math.h> #define m 5 #define n 5 int main() {int a,i,j; for(i=0;i<m;i++) for(j=0;j<n;j++) cin>>a;
C++ Найти номер последней из строк матрицы, содержащих только четные числа. Matrix34. Дана целочисленная матрица размера M × N. Найти номер последней из ее строк, содержащих только четные числа. Если таких строк нет, то вывести 0.помогите докончить! #include<iostream.h> #include<math.h> #define m 5 #define m 5 void main() {int a,i,j; for(i=0;i<m;i++) for(j=0;j<m;j++) cin>>a; http://www.cyberforum.ru/cpp-beginners/thread527362.html
Операция с матрицами "Объектно-ориентир программ" C++
Добрый день. Определить класс 2x2 матрицы. Определить операцию вычисления обратной матрицы с помощью перегрузки операции “--” (двойной минус).Заранее благодарен.
C++ ios::app не позволяет работать с seekp() или Update файла без удаления в нем информации при его октрытии
Здравствуйте форумчане. В общем вот как можно сформулировать задание. Есть файл с каким либо содержанием. Заменить первые 3 буквы в этом файле на слово "DOG", не использую дополнительных файлов, массивов и.т.п. Короче пробовал сделать так: #include <cstdlib> #include <iostream> #include <fstream> using namespace std;
C++ Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диаго-нали. http://www.cyberforum.ru/cpp-beginners/thread527344.html
Matrix92. Дана квадратная матрица порядка M. Обнулить элементы матрицы, лежащие одновременно выше главной диагонали и выше побочной диаго-нали. Условный оператор не использовать. помогите докончить! #include<iostream.h> #include<math.h> #define m 4 void main() { int a,i,j; for(i=0;i<m;i++)
C++ Сборка проекта, объявление и инициализация конструкторов в одном месте Всем привет! Столкнулся с такой проблемой как "много файловая" программа. А именно если конструктор и диструктор описывать например в A.h а инициализировать в A.cpp то компоновщик начинает такт орать что оглохнуть можно!!! Пишет всякую ересь по делу не не по делу. Но в основном что мол например конструктор hello(void) и диструктор ~hello(void) объявлены но не описаны! С этим можно что то... подробнее

Показать сообщение отдельно
doomer74
1 / 1 / 0
Регистрация: 01.12.2011
Сообщений: 51

Объясните задачу. Квадратная матрица - C++

25.03.2012, 10:23. Просмотров 423. Ответов 8
Метки (Все метки)

Дaна дeйствительная квадрaтная матpица порядка N (N - констaнта). Вычислить сyммy тех из ee элемeнтов, расположенных на главной диагонали и выше нее, которые превосходят по величине все ее элементы, расположенные ниже главной диагонали. Если на главной диагонали и вышe нет элементов с укaзaнным свойством, то отвeтом дoлжнo слyжить сooбщение oб этoм.

Помогите мне, пожалуйста, разобраться с условие задачи. Мне здесь уже помогли с написанием кода программы, но я все равно не могу понять, как она работает.
Объясните мне на конкретном примере, очень буду благодарен!

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
#include <stdio.h>
#include <conio.h>
#include <clocale>
#define N 5 // задаем константу N, равную размерности матрицы
 
int main () 
{
    setlocale(LC_ALL, "Russian");
    
    int i, j ,k = 0, l = 0, A[N][N], sum = 0, flag; // i,j,k,l - счетчики; A[N][N] - массив; sum - сумма; flag - флаг
    
    printf(" Размерность матрицы = %d x %d \n",N,N); 
    printf(" Введите элементы матрицы a[i][j], где i - номер строки, j - номер столбца:\n\n");
 
    for (i=0; i<N; i++) 
    {
        for (j=0; j<N; j++) 
        {
            printf(" a [%d] [%d] = ",i+1,j+1);
            scanf ("%d",&A[i][j]);
        }
    } // циклы, в которых вводятся элементы массива
 
    printf("\n"); // отступ после ввода элементов перед выводом матрицы на экран
    
    for (i=0; i<N; i++) 
    {
        for (j=0; j<N; j++) 
            {
            printf ("%7d",A[i][j]);
            }
        printf ("\n\n");
    } // циклы, в которых выводится на экран введенная матрица
 
    for (k=0; k<N; k++) {
        for (l=k; l<N; l++) // два цикла, в которых значения счетчиков - номера элементов главной диагонали и выше
            for (i=1; i<N; i++) {
                for (j=1; j<i+1; j++) // два цикла, в которых значения счетчиков - номера элементов ниже главной диагонали
                    if (A[i][j]<A[k][l]) flag=1;
                       else {
                            flag=0; 
                            break;
                            } 
// Сравниваем элемент главной диагонали (или выше) с элементом ниже главной диагонали. Если он больше - то поднимаем флаг, если меньше - опускаем.
// В итоге мы сравним КАЖДЫЙ элемент главной диагонали и выше с КАЖДЫМ элементом ниже диагонали. 
// Если элемент главной диагонали будет больше,чем каждый элемент снизу, то флаг так и останется поднятым. Если же он будет меньше, то мы его опускаем, и прекращаем цикл по j.
            if (flag==0) break; // Если флаг опущен, то мы прекращаем цикл по i. Переходим к следующему элементу главной диагонали и выше.
            }
    if (flag) sum+=A[k][l]; // Если же флаг поднять, то мы прибавляем значение этого элемента к искомой сумме.
    }
    if (sum==0) // Если сумма равна нулю, то мы печатаем что таких элементов нет, ждём нажатия любой клавиши, и прекращаем программу соответственно.
    { 
               printf (" Матрица не содержит элементов с заданным свойством");
               getch();
               return 0;
    }
    printf ("Сумма = %d",sum); // Если же сумма отлична от нуля, то мы печатаем её и завершаем программу.
    getch();
    return 0; 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru