Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.03.2015, 00:36   #1
Dashbalzhin
Пользователь
 
Регистрация: 11.03.2015
Сообщений: 19
По умолчанию Выделение динамической памяти

Помогите мне! Вот я написал программу, но не работает.
Код:
#include<stdio.h>
#include<stdlib.h>

int lokmax(int **a, int *b, int m, int n)
{
  int i,j,k=1,s;
  
  for(j=0;j<=n+1;j++)
    a[0][j]=-1;
  for(i=1;i<=m+1;i++)
    a[i][n+1]=-1;
  for(j=n;j>=0;j--)
    a[m+1][j]=-1;
  for(i=1;i<=m;i++)    
    a[i][0]=-1;            
  
  for(i=1;i<=m;i++)
  {
    s=0;
    for(j=1;j<=n;j++)
      if(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] && a[i][j]>a[i+1][j-1] && a[i][j]>a[i+1][j] && a[i][j]>a[i+1][j+1]) s++;        
    
    if(s!=n)
    {
      b[k]=i;
      k++;          
    }
  }
  return k;
}

int main()
{

  int m,i,n,j,k;
  
  scanf("%d%d",&m,&n);
  
  int *b=(int*)malloc(sizeof(int*)*m);
  int **a=(int**)malloc(sizeof(int*)*m);

  for(i=1;i<=m;i++)
    a[i]=(int*)malloc(sizeof(int)*n);

  for(i=1;i<=m;i++)
	for(j=1;j<=n;j++)
	  scanf("%d",&a[i][j]);
				
  k=lokmax(a,b,m,n);				
		
  for(i=1;i<=k;i++)
  {
    for(j=1;j<=n;j++)
	  printf("%d ",a[b[i]][j]);
	printf("\n");
  }
  
  for(i=1;i<=m;i++)
    free(a[i]);
  free(a);
  free(b);
  return 0;
}
Постановка задачи: 152. Дана целочисленная матрица A(M,N). Удалить строки, в которых имеются локальные максимумы. Элемент A(i, j) назовем “локальным максимумом ”, если он больше всех имеющихся у него соседей.
Мне нужно решить задачку с помощью выделения динамической памяти.

Последний раз редактировалось Stilet; 11.03.2015 в 07:51.
Dashbalzhin вне форума Ответить с цитированием
Старый 11.03.2015, 06:27   #2
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Вы её уже выделяете
pu4koff вне форума Ответить с цитированием
Старый 11.03.2015, 07:52   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
не работает.
Йтьтыж, какая плохая. По попе ей ремнем )
А че не работает, мона поинтересоваться? Аль это игра "Угадай поломку"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2015, 08:56   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

мож пора начать нумеровать массивы с нуля? тем более динамические
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.03.2015, 12:19   #5
Dashbalzhin
Пользователь
 
Регистрация: 11.03.2015
Сообщений: 19
По умолчанию

Здравствуйте!

Когда я проверяю программу, появляется такая ошибка, которая во вложенном файле)))))
Изображения
Тип файла: jpg Screenshot00.jpg (76.1 Кб, 138 просмотров)
Dashbalzhin вне форума Ответить с цитированием
Старый 11.03.2015, 12:21   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Сообщение от Dashbalzhin Посмотреть сообщение
Здравствуйте!

Когда я проверяю программу, появляется такая ошибка, которая во вложенном файле)))))
ну правильно, так и быть должно.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 11.03.2015, 12:32   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да, подмечено верно. Циклы нужно с нуля и до колва-1:
Код:
for(i=0;i<m;i++)
И так все остальные - равно поубирать, единицу заменить.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.03.2015, 19:07   #8
Dashbalzhin
Пользователь
 
Регистрация: 11.03.2015
Сообщений: 19
По умолчанию

Она ничего публикует.
Непонятно, что в чем проблема.
Dashbalzhin вне форума Ответить с цитированием
Старый 12.03.2015, 03:07   #9
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

похоже, в прокладке проблема.
дебаггером-то, вангую, не пользовался, да?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 12.03.2015, 07:52   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Непонятно, что в чем проблема.
Выше сказанное нами выполнил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое выделение динамической памяти GAleX1 Общие вопросы C/C++ 3 29.03.2013 23:18
Распределение памяти. Динамическое выделение памяти с++ Tolian92 Помощь студентам 8 14.05.2012 21:44
Матрицы,Выделение динамической axel43 Общие вопросы C/C++ 1 26.06.2011 00:50
Кольцевая очередь на массиве в статической памяти с элементами в динамической памяти ]tach[ Общие вопросы C/C++ 1 19.01.2011 13:16
Выделение динамической памяти под правый треугольник квадратной матрицы Assasin92 Общие вопросы C/C++ 0 30.10.2010 23:14