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

Двумерный массив, поиск локального минимума - доработать код - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа следящая за футбольной игрой http://www.cyberforum.ru/cpp-beginners/thread1224722.html
ребят,спасайте полный ***** препод дал задание на практику но как это обычно бывает в наших инстах нас особо программированию вообще никто не учил) ну так впринципе и есть) в общем задание такое 4 пункта: 1. Выделение у кадра области относящейся к полю 2. Есть ли на экране поле 3. Выделить ворота Выделить вратарскую линию и центральную линию Определить есть ли в области игрок заданой...
C++ Запись бинарного файла - На консоль выводиться дважды последнее прочтенное значение Ошибка: на консоль выводиться дважды последнее прочтенное значение (в данном случае - 20). Подскажите, пожалуйста, как избежать данную проблему? #include <iostream> #include <fstream> #include <stdlib.h> using namespace std; int main() { ofstream myFile1("file.bin", ios::binary); if(!myFile1) http://www.cyberforum.ru/cpp-beginners/thread1224717.html
Неправильно работает небольшая программа-калькулятор C++
это калькулятор фунтов, шиллингов и пенсов по старой системе. он должен уметь складывать, вычитать суммы, а также, умножать на число. складывает, вычитает, а умножать отказывается. помогите! ан нет, наисправляла, теперь вообще не считает #include "stdafx.h" #include <iostream> using namespace std; int main() { int funt, funt1, shill, shill1, pens, pens1, funt2, shill2, pens2; char ch,...
Таблица рекордов для игры C++
Доброго времени суток! Подскажите, пожалуйста, как сделать таблицу рекордов. Есть игра. Сначала вводиться имя игрока, потом игра, а затем нужно занести результат в таблицу. Как это сделать?
C++ Error C2040 в пользовательском классе http://www.cyberforum.ru/cpp-beginners/thread1224669.html
Функция main: int main( void ) { const char str = "message"; String( str ); std::cin.get(); std::cin.get(); return 0; } Ошибка в строке:
C++ Создать отдельный управляемый поток для бесконечного процесса Пишу простую визуализацию броуновского движения в С++ Builder-e рисуя кружочки на имейдже. Подскажите самый простой пример как запихнуть процесс движения в отдельный поток с реалзацией функции запуска/паузы движения из приложения. (сразу скажу что работу с потоками понимаю только на уровне идеи) подробнее

Показать сообщение отдельно
FloraWinx
 Аватар для FloraWinx
4 / 4 / 1
Регистрация: 05.10.2013
Сообщений: 122
09.07.2014, 02:02     Двумерный массив, поиск локального минимума - доработать код
Написал следующий код, вроде запускается и работает только не всегда корректно считает. Задача в следующем найти локальные минимумы ( если элемент строго меньше его соседей ). Здесь еще надо учесть тот момент что элемент может стоять на границе и можно выйти за пределы массива но я это учел.
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <ctime>
#include <conio.h>
using namespace std;
 
 
bool check_border (int **array , int x , int y , int SIZE_X_X){
 
    int value = array[x][y];
 
 
      if( x>0 &&y>0){
             
            if(x>0 && y>0 && x<SIZE_X_X && y<SIZE_X_X &&( value>array[x+1][y] || value > array[x-1][y] || value> array[x][y+1] || value > array[x][y-1])){return false;}
      }
 
      if(x=0 && y>0 && y<SIZE_X_X) {
          if( value>array[x][y-1] || value>array[x][y+1] ){return false;}
      }
 
      if( y=0 && x>0 && x<SIZE_X_X){
          if(value>array[x-1][y] || value>array[x+1][y]){return false;}
      }
 
      if (x=SIZE_X_X && y>0 && y<SIZE_X_X){
          if(value>array[x][y+1] || value>array[x][y-1]){return false;}
      }
 
      if(y=SIZE_X_X && x>0 && x<SIZE_X_X){
          if(value>array[x+1][y] || value>array[x-1][y]){return false;}
      }
 
     if(x==0 && y==0){
         if(value>array[x+1][y] || value > array[x][y+1]){return false;} // left corner
     }
 
     if(x==SIZE_X_X && y==0 ){
         if(value > array[SIZE_X_X-1][y] || value > array[SIZE_X_X][y+1]){return false;} //left corner
     }
 
     if(x==0 &&  y==SIZE_X_X) {
         if(value > array[x+1][SIZE_X_X] || value >array [x][SIZE_X_X-1]){return false;}
     }
 
 
     if(x==SIZE_X_X && y == SIZE_X_X) {
         if(value > array[SIZE_X_X-1][SIZE_X_X] ||  value >array[SIZE_X_X][SIZE_X_X-1] ){return false;}
     }
 
    return true;
}
 
int main(){
 
int n;
srand (time(NULL));
cin>>n;
int **p = new int *[n];
   
  for(int i=0;i <n; i++){
      p[i] = new int [n];
    for(int j=0;j<n;j++){
     p[i][j] = rand()%203-100;
     cout<<p[i][j]<<"\t";}
    cout<<endl;}
 
  int count=0;
  for(int i=1; i< n-1; i++) {
      for( int j=1; j< n-1; j++){
 
          if (check_border (p , i,j,n)==true){
              cout<<"Local minimum was detected : \t"<<p[i][j]<<"\t";
              count++;
          }
      }}
  cout<<"there are \t " << count <<"\t local minimums "<<endl;
  _getch();
 
return 0;}
кто может посмотреть? когда ввожу матрицу размера 3 то нечего не находит и для 2 тоже.

Добавлено через 8 минут
извините в цикле
C++
1
2
 for(int i=0; i< n; i++) {
      for( int j=0; j< n; j++){
тогда ошибки с памятью
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru