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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск наибольшего из четных 
:(
    Опции темы
sasha1212
Дата 8.12.2014, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



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

#include <stdio.h>
#include <conio.h>

int A[20][20];
int C[100];
int N,M;
int k,s;
int poisk_max(int);


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

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

int postroenieoblasti(int x,int y)
{

 int W;
 int i,j;
 int max;
 

    k=1;
  for(j=y;j>=1;j--)                 //прямая
      {
      C[k]=A[x][j];
      printf("%d",C[k]);
      k++; }

  for(i=x-1,j=y+1;i>=1,j<=M;i--,j++)    // верхняя диагональ
      
      {
        C[k]=A[i][j];
            k++;

}
           
                    
  for(i=x+1,j=y+1;i<=N,j<=M; i++,j++)    // нижняя диагональ
        
            {
            C[k]=A[i][j];
    
    k++;}
 s=k-1;
W=poisk_max(s);

return W;

}

int poisk_max(int s)
{
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,a,x,y;
          
    vvod_massiva();
    vivod_massiva();

printf("| N | i | j | rezultat |\n");
printf("|   |   |   |          |\n");

    a=1;
    for(x=1;x<=N;x++)
    for(y=1;y<=M;y++)

{

A[x][y]=postroenieoblasti(x,y);

printf("|%3d|%3d|%3d|%10d|\n",a,x,y,A[x][y]);
a++;
}

getch();

}

PM MAIL   Вверх
feodorv
Дата 9.12.2014, 00:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2214
Регистрация: 30.7.2011

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



Цитата(sasha1212 @  8.12.2014,  12:45 Найти цитируемый пост)
почему то неправильно создается область

А кто знает, как строится эта область?


В код не вчитывался. Однако я не понял, чем диктовалось изменение исходного массива в последнем цикле:
Цитата(sasha1212 @  8.12.2014,  12:45 Найти цитируемый пост)
    for(x=1;x<=N;x++)
    for(y=1;y<=M;y++)
{
A[ x ][ y ]=postroenieoblasti(x,y);
printf("|%3d|%3d|%3d|%10d|\n",a,x,y,A[x][y]);
a++;
}

Почему нельзя было оставить массив в покое, а ввести дополнительную переменную:
Код
{
int v=postroenieoblasti(x,y);
printf("|%3d|%3d|%3d|%10d|\n",a,x,y,v);
a++;
}



Ну и возник вопрос:
Цитата(sasha1212 @  8.12.2014,  12:45 Найти цитируемый пост)
int poisk_max(int s)
{
int max;
     
for(k=1;k<=s;k++)
    {
    
    if(C[k]%2==0)
     {
        max=C[k];
        break;
     }

А если нет в массиве C[] четного элемента (ну вот такие входные данные), то чему будет равно значение переменной max?


ЗЫ Я не знаю, как у Вас в задаче выглядит "выделенная область", но понимаю, что размера массива C[] может не хватить: всего в массиве A[][] максимально 400 элементов, а в массив C[] влезает только 100. Конечно, Вам виднее, хватит ли этого или нет...


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

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

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

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

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


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

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


 




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


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

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