Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
gogoru88
0 / 0 / 0
Регистрация: 07.03.2016
Сообщений: 3
1

Нужно найти ошибки в вычислении локального минимума

28.04.2016, 22:43. Просмотров 290. Ответов 1
Метки нет (Все метки)

Как новичку конечно же сложно по-нормальному что-то сделать,но думаю эта штука может работать.

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

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
#include <iostream>
#include <cmath>
using namespace std;
int main(){
    setlocale(LC_ALL,"Russian");
    int a[10][10], i, j, k, n, sum,m;
    cout << "Введите размерность матрицы:"<< endl;
    cin >> n >> m;
    cout << "введите матрицу ёптель:" << endl;
    for(i=0; i<n; i++)
    for(j=0; j<m; j++)
    cin >> a[i][j];
int aa=0, bb=0, tt=0, dd=0, ee=0, ff=0, gg=0, hh=0, kk=0;
    for(i=0; i<n-1; i++)
    for(j=0; j<m-1; j++)
{
//Проверяем а00 на условие локального минимума
    if ( a[0][0]<a[0][1]&&a[0][0]<a[1][0]&&a[0][0]<a[1][1])
        aa++;
//Проверяем первую строку между а00 и а09 на условие локального минимума
    if ( j!=0 && j!=9 &&a[0][j]<a[0][j-1]&&a[0][j]<a[0][j+1]&&a[0][j]<a[1][j]&&a[0][j]<a[1][j-1]&&a[0][j]<a[1][j+1])
        bb++;
//Проверяем а09 на условие локального минимума
    if ( a[0][9]<a[0][8]&&a[0][9]<a[1][9]&&a[0][9]<a[1][8])
        tt++;
//Проверяем а90 на условие локального минимума
    if ( a[9][0]<a[8][0]&&a[9][0]<a[8][1]&&a[9][0]<a[9][1])
        gg++;
//Проверяем последнюю строку между а90 и а99 на условие локального минимума
    if ( j!=0 && j!=9&&a[9][j]<a[9][j-1]&&a[9][j]<a[9][j+1]&&a[9][j]<a[8][j]&&a[9][j]<a[8][j-1]&&a[9][j]<a[8][j+1])
        hh++;
//Проверяем а99 на условие локального минимума
    if ( a[9][9]<a[9][8]&&a[9][9]<a[8][9]&&a[9][9]<a[8][8])
        kk++;
//Проверяем первый столбец между а00 и а90 на условие локального минимума
    if ( i!=0 && i!=9 &&a[i][0]<a[i-1][0]&&a[i][0]<a[i-1][1]&&a[i][0]<a[i][1]&&a[i][0]<a[i+1][1]&&a[i][0]<a[i+1][1])
        dd++;
//Проверяем последний столбец между а09 и а99 на условие локального минимума
    if (  i!=0 && i!=9 &&a[i][9]<a[i-1][9]&&a[i][9]<a[i-1][8]&&a[i][9]<a[i][8]&&a[i][9]<a[i+1][8]&&a[i][9]<a[i+1][9])
        ff++;
//Проверяем остальные элементы(не граничные) на условие локального минимума
    if (i!=0 && i!=9 && j!=0 && j!=9&&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])
        ee++;
}
sum=aa+bb+tt+dd+ee+ff+gg+hh+kk;
cout << sum;
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 22:43
Ответы с готовыми решениями:

Нахождение локального минимума
Здравствуйте!!!! Напишите программу или алгоритм для нахождения локального минимума. Заранее...

Нахождение локального минимума
Написать программу: дана последовательность вещественных чисел. Найти и вывести на экран все...

Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки
Приветствую всех. Такая проблема: Делаю лабораторную работу, нужно отобразить результат работы...

Двумерный массив, поиск локального минимума - доработать код
Написал следующий код, вроде запускается и работает только не всегда корректно считает. Задача в...

Элементы, находящиеся левее локального минимума массива, разместить в памяти динамически и распечатать
Дан массив размера N. Найти номер его первого локального минимума (локальный минимум – это элемент,...

1
SpBerkut
Объявлятель переменных
948 / 274 / 276
Регистрация: 24.09.2011
Сообщений: 1,008
Завершенные тесты: 2
29.04.2016, 09:59 2
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
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int main()
{
    srand(time(NULL));
    int **a,n,m;
 
    // Ввод размера матрицы
    std::cout << "M: "; std::cin >> m;
    std::cout << "N: "; std::cin >> n;
 
    // Выделение памяти под матрицу
    a = new int *[m];
    for (int i = 0; i < m; i++) {
        a[i] = new int[n];
    }
 
    // Ввод элементов матрицы
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            a[i][j] = rand()%10;
            std::cout << a[i][j] << ' ';
        }
        std::cout << '\n';
    }
 
    int res = 0; // количество минимумов
 
    // Перебираем все элементы
    for (int i = 0; i < m; i++) {
        for (int j = 0; j < n; j++) {
            res++; // изначально считаем текущий элемент минимумом
            // Проверяем соседние элементы
            for (int r = i?i-1:i; r < i+(m-i>1?2:1); r++) {
                for (int c = j?j-1:j; c < j+(n-j>1?2:1); c++) {
                    if (r==i&&c==j) continue;  // Если пытаемся сравнить элемент с собой, то пропускаем итерацию
                    if (a[i][j] >= a[r][c]) { // Если нашёлся меньший сосед
                        res--; // уменьшаем счётчик обратно
                        goto fail; // что поделаешь, выходим по goto сразу из двух циклов
                    }
                }
            }
            fail: ;
        }
    }
 
    // Выводим результат
    std::cout << "Count of local mins: " << res << '\n';
 
    // Удаляем матрицу
    for (int i = 0; i < m; i++) {
        delete[] a[i];
    }
    delete[] a;
}
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.04.2016, 09:59

Пожалуйста, нужно найти ошибки в этом коде, нужно сделать в Codeblocks!
Задание было такое:Написать программу для работы с одномерным массивом размера N (0 &lt; N &lt; 100). В...

Ошибки в вычислении константы е
Сделал программку, которая вычисляет константу Е для небольшого количества знаков после запятой....

Ошибки в многопоточном вычислении средствами с++11
Задачка: 20 детей едят из одной миски, в которой 100 слив, когда ребенок хочет кушать, он берёт из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru