Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.12.2011, 00:38   #1
torren108
Пользователь
 
Регистрация: 28.09.2011
Сообщений: 17
По умолчанию Упорядоченность строки элементов.

Необходимо найти наименьшую строку, где все элементы положительны и упорядочены по возрастанию. Очевидно, что в коде уже ошибки. Какие бы элементы я не ввел, сама матрица отображается верно, но результатом всегда служит "строка 1, элементы -107кк... -107кк...". Будьте добры, укажите на косяки.


Код:
#include <stdio.h>
#include <math.h>
#define N 20

void main()
{
	int M[N][N], i, j, l, h, right=0, nomer=0;
// part 1
	printf("kolvo stolbcov =\n");
	scanf("%d", &l);
	printf("kolvo strok =\n");
	scanf("%d", &h);
	
	printf("elements of matrix (postro4no):\n");
		for(j=0;j<h;j++)
			for(i=0; i<l; i++)
				scanf("%d", &M[i][j]);
	
	printf("MATRIX:\n");
	for (j=0; j<h; j++)
	{
		for(i=0; i<l; i++)
			printf("%3d", M[i][j]);
		printf("\n");
	}
	
// part 2

	for (i=0; i<h; i++)
		{
			for (j=0; j<l; j++)
				if ((M[i][j] > 0) && (M[i][j] > M[i][j-1]))
				{
					right=M[i];
					nomer=i;
					break;
				}
				else break;			
		}

// part 3

		printf("nomer = %d!\n", nomer);
		printf("stroka:\n");
			for (j=0; j<l; j++)
				printf("%d", M[i]);
}
torren108 вне форума Ответить с цитированием
Старый 10.12.2011, 01:35   #2
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
printf("MATRIX:\n");
	for (j=0; j<h; j++)
	{
		for(i=0; i<l; i++)
			printf("%3d", M[i][j]);
		printf("\n");
	}
Кажеться здесь строки со столбцами перепутаны. Правильно M[строка][столбец]
viron вне форума Ответить с цитированием
Старый 10.12.2011, 01:47   #3
torren108
Пользователь
 
Регистрация: 28.09.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от viron Посмотреть сообщение
Код:
printf("MATRIX:\n");
	for (j=0; j<h; j++)
	{
		for(i=0; i<l; i++)
			printf("%3d", M[i][j]);
		printf("\n");
	}
Кажеться здесь строки со столбцами перепутаны. Правильно M[строка][столбец]
нет, все верно. проблема во 2й части программы, как я понимаю
torren108 вне форума Ответить с цитированием
Старый 10.12.2011, 01:56   #4
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

В этом участке когда j равно 0, то M[i][j-1] - это выход за границы массива
Получаеться M[i][-1]

Код:
for (i=0; i<h; i++)
	{
		for (j=0; j<l; j++)
			if ((M[i][j] > 0) && (M[i][j] > M[i][j-1]))
			{
				right=M[i];
				nomer=i;
				break;
			}
			else break;			
	}
viron вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Дана матрица А[m,n]. Найти первый столбец, сумма элементов которого равна сумме элементов первой строки. edikesh Помощь студентам 3 01.12.2011 19:21
Написать функцию булевского(целого) типа, определяющую упорядоченность массива целых чисел Anando Паскаль, Turbo Pascal, PascalABC.NET 16 23.09.2011 13:26
упорядоченность координат homereader Помощь студентам 4 03.06.2011 14:16
рекурсия, масив дробных чисел, упорядоченность... nata18 Помощь студентам 1 13.02.2011 13:05
Удаление элементов строки s2 из строки s1 Ueshua Общие вопросы C/C++ 4 20.12.2009 13:06