Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Для каждого элемента А(i,j) найти наиб.значение ср 
:(
    Опции темы
sasha1212
Дата 28.11.2014, 10:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 11.3.2014

Репутация: нет
Всего: нет



Для каждого элемента А(i,j) найти наиб.значение среди всех четных элементов в выделенной области.Результат представить в виде таблицы
Есть код,но он не работает,где ошибка,не знаю,все переделывал,но никак.Пожалуйста помогите мне с этой программой
Код

#include <stdio.h>
#include <conio.h>
#include <iostream>
int C[100];
int s,k;
int N,M;
int A[20][20];
int poisk_max(int);


void vvod_massiva()
{int i;
 int j;
 printf("Vvedite kol-vo strok i stolbcov \n");
    scanf("%d %d",&N,&M);
 printf("Vvedite massiv: \n");
 for(i=1;i<=N;i++)
      {for(j=1;j<=M;j++)
      scanf("%d",&A[i][j]);
      
      }
}

void vivod_massiva(int N,int M)
{
 int i,j;
 printf("\n Vash massiv: \n");
 for(i=1;i<=N;i++)
    {
     for(j=1;j<=M;j++)
     printf("%d",A[i][j]);
     printf("\n");
        
    }
}

int postroenieoblasti(int p,int t)
{
 int s,k,x,y;
 int i,j;
 int max;
 k=1;
 x=i;
  for(j=y;j<=M;j--)                   //прямая
    {C[k]=A[x][y];
    k++;
    }
 s=k;
 y=j;
 for(x=i-1;x>0;x--)                  //верхняя диагональ
    if(y<M)
    {C[k]=A[x][y+1];
    k++;
    } 
s=k;
y=j;
for(x=i+1;x<=N;x++)                  //нижняя диагональ
    if(y<M)
       {
        C[k]=A[x][y+1];
        k++;
       }
s=k;
poisk_max(k);
return max;          
}

int poisk_max(int k)
{
int max;
for(k=1;k<=s;k++)
    {
    
    if(C[k]%2==0)
     {
        max=C[k];
        break;
     }
 }
  for(k=1;k<=s;k++)
     {if(C[k]%2==0 && C[k]>max)
          max=C[k];}
   return max;   
}


int main ()
{
    int i,j,B[20][20],a;
    int p,t;
    a=1;
        vvod_massiva();
    printf("| N | i | j | rezultat |\n");
    printf("|   |   |   |          |\n");
    for(p=1;p<=N;p++)
    for(t=1;t<=M;t++)
    {
    B[p][t]=postroenieoblasti(p,t);
    a++;    
    }
printf("|%3d|%3d|%3d|%10d|",a,p,t,B[p][t]);
getch();

}

PM MAIL   Вверх
xvr
Дата 28.11.2014, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 7046
Регистрация: 28.8.2007
Где: Дублин, Ирландия

Репутация: 35
Всего: 223



Цитата(sasha1212 @  28.11.2014,  10:51 Найти цитируемый пост)
где ошибка,не знаю

Вся функция postroenieoblasti - одна большая ошибка.  smile Начиная с того, что в С массивы индексируются с 0, а не с 1 (что и остальных частей 'программы' касается), и заканчивая повсеместным использованием неинициализированных переменных.
Попутно там еще несколько багов есть  smile 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0639 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.