Я пишу код для практики и возникла ошибка. В общей картине, я понимаю, что мне нужно проверять каждый ряд матрицы на упорядоченность по возрастанию, а после прибавлять счётчику строк единицу. Но, дело в том, что я пыталась написать подобное и оно не считает как нужно. К примеру я ввожу 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;
}
Janat 0 / 0 / 0 Регистрация: 20.03.2012 Сообщений: 17 |
||||
1 |
||||
Найти количество строк матрицы, элементы которых упорядочены по возрастанию.25.03.2012, 10:21. Показов 5238. Ответов 14 Метки нет (Все метки)
помогите докончить Matrix42. Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
помогите кто знает!
0 |
Programming Эксперт 94731 / 64177 / 26122 Регистрация: 12.04.2006 Сообщений: 116,782 |
25.03.2012, 10:21 |
14 |
Байт Диссидент 27488 / 17175 / 3784 Регистрация: 24.12.2010 Сообщений: 38,685 |
||||
25.03.2012, 11:04 |
2 |
|||
2 |
Infinity3000 1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
||||
25.03.2012, 11:27 |
3 |
|||
Байт, все правильно только сдесь выходишь за пределы массива
if (j==n)
0 |
1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
|
25.03.2012, 11:33 |
4 |
Результат Миниатюры
0 |
Диссидент 27488 / 17175 / 3784 Регистрация: 24.12.2010 Сообщений: 38,685 |
|
25.03.2012, 11:34 |
5 |
Байт, все правильно только сдесь выходишь за пределы массива Чего это вдруг? Никуда я не выхожу. Условие j==n означает, что цикл прокрутился до конца и закончился именно потому, что условие j < n не выполняется, а не по Бреку.
1 |
Infinity3000 1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
||||||||
25.03.2012, 11:48 |
6 |
|||||||
Чего это вдруг? Никуда я не выхожу. Условие j==n означает, что цикл прокрутился до конца и закончился именно потому, что условие j < n не выполняется, а не по Бреку. Допустим массив 5х5, получается что n = 5; соответсвенно номера столбцов j = 0 — первый столбец то есть j не будет равен (в данном случае) 5, то есть n поэтому условие
ни когда не будет выполняться, это тоже саммое что
Тоже саммое будет происходить и при других размерах массива!
0 |
sandye51 программист С++ 841 / 600 / 147 Регистрация: 19.12.2010 Сообщений: 2,014 |
||||
25.03.2012, 11:51 |
7 |
|||
Infinity3000,
цикл должен когда-либо закончиться и это очевидно
1 |
Infinity3000 |
25.03.2012, 11:53
|
Не по теме: ок! не будем оффтопить, просто попробуйте приведенный выше мой код скомпилировать с мойм условие, а потом условием уважаемого Байт
0 |
программист С++ 841 / 600 / 147 Регистрация: 19.12.2010 Сообщений: 2,014 |
|
25.03.2012, 11:54 |
9 |
код товарища Байт Infinity3000, вы не понимаете что ваше условие стоит внутри цикла и там всегда j < n? Миниатюры
1 |
Байт Диссидент 27488 / 17175 / 3784 Регистрация: 24.12.2010 Сообщений: 38,685 |
||||
25.03.2012, 11:56 |
10 |
|||
Infinity3000, рассмотрим ситуацию
Не по теме: Из двух спорящих один — дурак, другой — подлец. Придется нам разыграть эти роли:)
0 |
1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
|
25.03.2012, 12:04 |
11 |
sandye51, посмотрите, условие один в один с вашим! (если я не где на запоролся) Миниатюры
0 |
программист С++ 841 / 600 / 147 Регистрация: 19.12.2010 Сообщений: 2,014 |
|
25.03.2012, 12:05 |
12 |
Infinity3000, еще раз повторяю — ваше условие внутри цикла, у Байт — вне
1 |
Infinity3000 1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
||||
25.03.2012, 12:10 |
13 |
|||
Infinity3000, еще раз повторяю — ваше условие внутри цикла, у Байт — вне ну это ж не оптимальный вариант
оюбявлять как «глобальные» для цикла? если можно сделать что бы они существовали только внутри цикла? тогда код Байт’а не подойдет! ну а вообще да сорри погарячился, код уважаемого Байт был изначально рабочий
1 |
программист С++ 841 / 600 / 147 Регистрация: 19.12.2010 Сообщений: 2,014 |
|
25.03.2012, 12:12 |
14 |
оюбявлять как «глобальные» для цикла? если можно сделать что бы они существовали только внутри цикла? тогда код Байт’а не подойдет! ну это уже другой вопрос и тут претензии не к Байт, а к автору темы
1 |
Infinity3000 1066 / 583 / 87 Регистрация: 03.12.2009 Сообщений: 1,255 |
||||||||
25.03.2012, 12:15 |
15 |
|||||||
Думаю целесообразно выложить два варианта! Версия Байт (точнее только циклы)
Версия infinity3000
1 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.03.2012, 12:15 |
15 |
Matrix42. Дана матрица размера M × N. Найти количество ее строк, элементы которых упорядочены по возрастанию.
Решение Pascal
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 |
program Matrix42; var a:array [1..10,1..10] of integer; Num, M, N, i, j:Integer; begin Write(‘N: ‘); Readln(N); Write(‘M: ‘); Readln(M); for i:=1 to M do begin writeln(i,‘: ‘); for j:=1 to N do begin Write(j,‘ : ‘); Read(a[i,j]); end; end; Num:=0; for i:=1 to M do begin J:=2; While ((a[i,j—1]<a[i,j]) and (j<=N)) do inc(j); if J=N+1 then inc(Num); end; writeln(Num); end. |
Оцените решение
Загрузка…
Вопрос по DCOMPermissions.psm1
19th April, 17:09
199
0
Некорректный скрипт для закрытия блока
14th April, 18:33
179
0
Doesn’t show model window
14th March, 22:20
175
0
прокидывать exception в блоках try-catch JAVA
11th March, 21:11
187
0
Пишу BAS-скрипты на запросах для несложных сайтов и Android-приложений.
9th February, 17:04
444
0
Помогите пожалуйста решить задачи
24th November, 23:53
1019
0
Не понимаю почему не открывается детальное описание продукта
11th November, 11:51
413
0
Пишу скрипты для BAS только на запросах
8th November, 10:38
476
0
Как поднять свой VPN на Android?
4th November, 17:09
485
1
Нужно решить задачу по программированию на массивы
27th October, 18:01
634
0
Метода Крамера С++
23rd October, 11:55
516
0
помогите решить задачу на C++
22nd October, 17:31
532
0
Помогите решить задачу на python с codeforces
22nd October, 11:11
654
0
Generate Additional Engagement Image Masking Service
5th July, 07:34
743
0
Join Us Today Ghost Mannequin Effect Service
5th July, 07:10
930
0
Python с нуля
18th June, 13:58
821
0
Its Urban Malaysia Phone Number List Exceeds
21st April, 08:09
949
1
橱柜并烤 手机号码 了一个纸杯蛋糕之后
6th April, 13:05
581
0
Все вопросы
По разделам
Дана матрица размера M ×N. Найти количество ее строк, элементы
которых упорядочены по возрастанию.
const nmax=20; var a:array[1..nmax,1..nmax] of integer; m,n,i,j,k:byte; f:boolean; begin clrscr; randomize; repeat write('Количество строк до ',nmax,' m='); readln(m); until m in [1..nmax]; repeat write('Количество столбцов до ',nmax,' n='); readln(n); until n in [1..nmax]; writeln('Введите построчно элементы матрицы:'); for i:=1 to m do for j:=1 to n do begin write('a[',i,',',j,']='); readln(a[i,j]); end; clrscr; writeln('Исходная матрица:'); for i:=1 to m do begin for j:=1 to n do write(a[i,j]:4); writeln; end; writeln; k:=0; for i:=1 to m do begin f:=true; j:=2; while(j<=n)and f do if a[i,j]<=a[i,j-1] then f:=false{строгое возрастание, 1 2 2 3 не пойдет} else j:=j+1; if f then inc(k); end; write('Количество строк, упорядоченных по возрастанию=',k); readln end.