Форум программистов, компьютерный форум CyberForum.ru

Подсчитать количество локальных минимумов заданной матрицы - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Дмитрий21120
0 / 0 / 0
Регистрация: 21.10.2012
Сообщений: 3
21.10.2012, 22:38     Подсчитать количество локальных минимумов заданной матрицы #1
Помогите пожалуйста решить задачку =)
Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей. Подсчитать количество локальных минимумов заданной матрицы размером 10х10.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2012, 22:38     Подсчитать количество локальных минимумов заданной матрицы
Посмотрите здесь:

C++ Подсчитать количество локальных минимумов заданной матрицы
C++ Элемент матрицы называется локальным минимумом, если он строго меньше всех имеющихся у него соседей.Подсчитать количество локальных минимумов ...
Подсчитать количество локальных минимумов заданной матрицы размером 10 на 10 C++
Подсчитать количество локальных минимумов в матрице C++
C++ Подсчитать количество локальных минимумов
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Shurik70rus
0 / 0 / 0
Регистрация: 22.10.2012
Сообщений: 3
22.10.2012, 15:00     Подсчитать количество локальных минимумов заданной матрицы #2
Делал похожее задание, только у меня надо было вывести масив локальных минимумов. Можешь подправить и вуаля =).
Для языка С.
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include<stdio.h>
main()
{int A[10][10], i, j, B[10], k, n, m;
printf("\nVvedite razmernost matricy\n");
scanf("%d%d", &n, &m);
printf("Vvedite matricy A\n");
for(i=0; i<n; i++)
for(j=0; j<m; j++)
scanf("%d", &A[i][j]);
k=0;
for(i=1; i<n-1; i++)
for(j=1; j<m-1; j++)
if(A[i][j]<A[i][j-1] &&
A[i][j]<A[i][j+1] &&
A[i][j]<A[i-1][j] &&
A[i][j]<A[i+1][j])
{B[k]=A[i][j]; k++;}
for(i=0; i<k; i++)
printf("%5d", B[i]);}
Для языка С++
C++
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
#include <iostream.h>
#include <conio.h>
using namespace std;
int main(){
    setlocale(LC_ALL,"Russian");
    int A[10][10], i, j, B[10], k, n, m;
    cout << "Ââåäèòå Г°Г*çìåðГ*îñòü Г¬Г*òðèöû n ГЁ m:"<< endl;
    cin >> n >> m;
    cout << "Ââåäèòå Г¬Г*òðèöó " << n <<" "<< m <<":" << endl;
    for(i=0; i<n; i++)
    for(j=0; j<m; j++)
    cin >> A[i][j];
    k=0;
    for(i=1; i<n-1; i++)
    for(j=1; j<m-1; j++)
    if(A[i][j]<A[i][j-1] &&
    A[i][j]<A[i][j+1] &&
    A[i][j]<A[i-1][j] &&
    A[i][j]<A[i+1][j])
    {B[k]=A[i][j]; k++;}
    for(i=0; i<k; i++)
    cout << B[i] << " ";
 
    getch();
}
Maxshall
0 / 0 / 0
Регистрация: 06.10.2011
Сообщений: 19
21.02.2013, 23:01     Подсчитать количество локальных минимумов заданной матрицы #3
Здравствуйте!Подскажите что не так,почему вылетает прога?
C++
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#include <ctime>
#include <cstdlib>
#include <iostream>
#include <iomanip>
using namespace std;
 
template <class T> inline
 T abs(T& val)
 {
  return T>0 ? T : -T;
 }
template <class T>
 bool IsLocalMin(T a[10][10],int i,int j)
 {
  int z,k;
  for (z = i-1; z <= i+1; ++z)
   for (k = j-1; k <= j+1; ++k)
   {
    if (z >=0 && k >=0 && z <10 && k <10 && !(z == i && k ==j))
     if (a[i][j] >= a[z][k]) return false;
   }
  return true;
 }
template <class T>
 int GetLocalMinCount(T a[10][10])
 {
  int i,j,count = 0;
  for (i=0; i <10; ++i)
   for (j=0; j <10; ++j)
    if (IsLocalMin(a,i,j)) count++;
  return count;
 }
template <class T>
 T GetSumAboveDiagonal(T a[10][10])
 {
  int i,j; T nsum = 0;
  for (i=0; i <10; ++i)
   for (j = i + 1; j < 10; ++j)
    nsum += abs(a[i][j]);
  return nsum;
 }
void main()
{
 srand((unsigned)time(0));
 int i,j; int a[10][10];
 for (i=0; i <10; ++i)
  for (j=0; j <10; ++j)
   a[i][j] = rand() %100/* - 50*/;
 cout << "Source matrix:" << endl;
 for (i=0; i <10; ++i)
 {
  for (j=0; j <10; ++j)
   cout << setw(4) << a[i][j] /*<< ((j == 9) ? endl : " ")*/;
  cout << endl;
 }
 cout << "Local minimums: " << GetLocalMinCount(a) << endl;
 cout << "Sum of elements' modules above main diagonal: " << GetSumAboveDiagonal(a) <<endl;
}
Marina_P
8 / 8 / 0
Регистрация: 11.02.2013
Сообщений: 67
25.07.2013, 11:21     Подсчитать количество локальных минимумов заданной матрицы #4
Не совсем поняла про локальный минимум матрицы.А для граничных элементов не считается локальный минимум?
Yandex
Объявления
25.07.2013, 11:21     Подсчитать количество локальных минимумов заданной матрицы
Ответ Создать тему
Опции темы

Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru