Показать сообщение отдельно

  #2178  
Старый 08.01.2010, 20:22
RomaJkaa
Новичок
Регистрация: 17.10.2009
Сообщений: 2
Провел на форуме:
14644

Репутация: 0
По умолчанию

Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы 10 на 10 .
Найти сумму модулей элементов выше главной диагонали.

Вопрос по первой части :
1)Что-то он криво считает минимумы в углах там вроде как нужен учёт границ только я не знаю как это сделать ((
и ещё с элементами меньше нуля криво работает

если не сложно помогите

Код:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
int main(){
int k,j,i,m,n,loc_min,summ;
cout << endl << endl << "vvedite kolichestvo strok : ";
cin >> m;
cout << "vvedite kolichestvo stolbcov : ";
cin >> n;
int **a = new int *[m];
for ( i = 0 ; i < m ; i++){
	a[i] = new int [n];
	}
for ( i = 0 ; i < m ; i++ ){
	for ( j = 0 ; j < n ; j++ )
		cin >> a[i][j];
	}

cout << endl << endl;

loc_min = 0;
summ = 0;


for ( i = 0 ; i < m ; i++ )
	{
	for ( j = 0 ; j < n ; j++ )
		{
		if( (i==0) && (j==0) && (a[i][j]<a[i][j+1]) && (a[i][j]<a[i+1][j]) && (a[i][j]<a[i+1][j+1]) )
			loc_min = loc_min + 1;
		else
			if( (a[i][j]<a[i-1][j-1]) && (a[i][j]<a[i-1][j]) && (a[i][j]<a[i-1][j+1]) && (a[i][j]<a[i][j-1]) && (a[i][j]<a[i][j+1]) && (a[i][j]<a[i+1][j-1]) && (a[i][j]<a[i+1][j]) && (a[i][j]<a[i+1][j+1]))
				loc_min = loc_min + 1;
		}
	}

cout << endl;
cout << " colichestvo localnyx minimumov v matrice : " << loc_min;

for ( i = 0 ; i < m-1 ; i++ )
	{
       cout <<endl << summ;
	for ( j = 1 ; j < n ; j++ )
		{
if ( i+j < n ) 
if ( a[i][j+i] < 0 )
summ = summ - a[i][j+i];
else
summ = summ + a[i][j+i];
		}
	}
cout << " summa modulei elementov, raspol. vishe glavnoi diagonali : " << summ;
getchar();
 
Ответить с цитированием