Дана матрица размером MxN. Найти количество строк, которые упорядочены по возрастанию

Я пишу код для практики и возникла ошибка. В общей картине, я понимаю, что мне нужно проверять каждый ряд матрицы на упорядоченность по возрастанию, а после прибавлять счётчику строк единицу. Но, дело в том, что я пыталась написать подобное и оно не считает как нужно. К примеру я ввожу 3 строки, которые явно упорядочены по возрастанию и одну по убыванию, но оно просто выбивает цифру 1, 2 или 0. Не могли бы вы помочь мне с этой частью кода?

#include <vcl.h> 
#include <iostream.h> 
#include <conio.h> 
#include <math.h> 
#include <stdio.h> 
#include <Windows.h>

int main(int argc, char* argv[]) 
{
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251); 
 
    int i,j,n,m,k,result=0; 
    int r[10][10]; 

    cout<<"Ряды \n"; 
    cin>>n; 
    cout<<"Столбцы: \n"; 
    cin>>m; 
    cout<<"Матрица\n"; 

    for(i=0;i<n;i++)
    { 
        for(j=0;j<m;j++) 
            cin>>r[i][j];
    } 

    for(i=0;i<n;i++) 
    {
        if (i==n-1) 
            result++;
    } 
    cout<<"\n Строки: "<<result; 

    getch(); 
    return 0;
}

Ответы (1 шт):

Автор решения: Виктор Шевченко

Попробуй вот это:

#include <iostream> 

int main() {

    int rowCount, m, n, tmp = 0; 
    int r[10][10]; 

    std::cout << "Row \n"; 
    std::cin >> n; 
    std::cout << "Column: \n"; 
    std::cin >> m;

    std::cout << "Matrix\n"; 

    for (int i = 0; i < n; i++) { 
        for (int j = 0; j < m; j++) 
            std::cin >> r[i][j];
    }

    for (int i = 0; i < n; i++) {
        for (int j = 1; j < m; j++) {
            if (r[i][j] - r[i][j - 1] > 0) 
                tmp++;
        }
        if (tmp == (m - 1)) rowCount++;
        tmp = 0;
    } 
    std::cout << "\n Rows count: " << rowCount; 

    return 0;
}
→ Ссылка