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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Напечатать все элементы следующие за последним элементом оканчивающимся цифрой "7" http://www.cyberforum.ru/cpp-beginners/thread286872.html
Напечатать все элементы следующие за последним элементом оканчивающимся цифрой "7". Если элементов, оканчивающихся цифрой "7" в массиве нет, то ни один элемент не должен быть напечатан. Именуйте темы осмысленно! Название темы должно максимально полно отражать её содержимое.
C++ книги туториалы мануалы по hex и debagger (да и объяснить для чего это) Здравствуйте дайте ссылок на книги туториалы мануалы по hex и debagger (да и объяснить для чего это) Добавлено через 2 часа 49 минут UP!:( http://www.cyberforum.ru/cpp-beginners/thread286869.html
C++ RSA
бьюсь головой об стол с перерывами на обед... вот код: bool prost(int z) { for(int i=2; i<=sqrt((float)z); i++) if(z%i == 0) return false; return true; }
C++ Функции 2-х классов!
Как из функции класса А, вызвать функцию класса Б?? подскажите пожалуйста!
C++ работа с файлами http://www.cyberforum.ru/cpp-beginners/thread286843.html
помогите пожалуйста! 2. Дан файл f, компоненты которого являются целыми числами. Никакой из компонентов файла не равен нулю. Используя вспомогательный файл h, переписать компоненты файла f в файл g так чтобы в файле g чтобы сначала шли положительные, потом отрицательные числа;
C++ Определить элемент массива Всем привет. Пусть дан массив(типа int, хотя может быть после совета я тип изменю). Допустим, что какой-то элемент массива равен 1. Теперь мне нужно добавить к этому элементу 0 так, чтобы элемент массива стал равен 10(не десять, а единицы и ноль), за тем опять добавим, например 1, тогда получится 101(единица, ноль, единица). Наглядно выглядит это так: первый шаг: a=1 ... подробнее

Показать сообщение отдельно
lemegeton
2917 / 1346 / 133
Регистрация: 29.11.2010
Сообщений: 2,720
02.05.2011, 02:39     Подсчитать количество локальных минимумов матрицы
#1
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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int IsLocalMinimum(int **matrix, int matrix_size, size_t i, size_t j) {
  size_t k, l;
  size_t k_from = ((i == 0) ? i : i - 1);
  size_t l_from = ((j == 0) ? j : j - 1);
  size_t k_to   = ((i < (matrix_size - 1)) ? i + 1 : i);
  size_t l_to   = ((j < (matrix_size - 1)) ? j + 1 : j);
  for (k = k_from; k <= k_to; ++k)
    for (l = l_from; l <= l_to; ++l) 
      if (matrix[k][l] <= matrix[i][j] && (i != k || j != l))
        return 0;
  return 1;
}
 
int main(int argc, char *argv[]) {
  srand(time(NULL));
 
  size_t matrix_size = 10 + rand() % 5;
  int **matrix = (int**)malloc(sizeof(int*) * matrix_size); 
 
  size_t i, j;
  for (i = 0; i < matrix_size; ++i) {
    matrix[i] = (int*)malloc(sizeof(int) * matrix_size);
    for (j = 0; j < matrix_size; ++j)
      printf("%5d", matrix[i][j] = rand() % 101 - 50);
    printf("\n");
  }
 
  for (i = 0; i < matrix_size; ++i)
    for (j = 0; j < matrix_size; ++j)
      if (IsLocalMinimum(matrix, matrix_size, i, j) == 1)
        printf("Local minimum at (%d, %d) = %d.\n", i, j, matrix[i][j]);
 
  for (i = 0; i < matrix_size; ++i)
    free(matrix[i]);
  free(matrix);
  return 0;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru