Дана матрица размером 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;
}