
08.01.2010, 20:22
|
|
Новичок
Регистрация: 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();
|
|
|