Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Найти наибольший элемент из четных


Автор: sasha1212 11.12.2014, 19:59
Для каждого элемента матрицы найти наибольший элемент из четных  из выделенной области.Помогите пожалуйста,программа почему то  неправильно создает область,где может быть ошибка?Никаких мыслей уже нет,все что можно перепробовал



Код

#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=0;i<=N;i++)
      {for(j=0;j<=M;j++)
      scanf("%d",&A[i][j]);
      
      }
}

void vivod_massiva()
{
 int i,j;
 printf("\n Vasha matrica \n");
 for(i=0;i<=N;i++)
    {
     for(j=0;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(i=x,j=y;j>=0;j--)                 //i?yiay
      {
      C[k]=A[i][j];

      k++; }

    for(i=x-1,j=y+1;i>=1,j<=M;i--,j++)    // aa?oiyy aeaaiiaeu
      
      {
        
        
        C[k]=A[i][j];
        k++;
        
            

}
                    
  for(i=x+1,j=y+1;i<=N,j<=M; i++,j++)    // ie?iyy aeaaiiaeu
        
            {
            C[k]=A[i][j];
             k++;
        
             
   }
 s=k;
W=poisk_max(s);

return W;

}

int poisk_max(int s)
{
int max;
  for(k=0;k<=s;k++)
      {
        printf("%d",C[k]);
      }
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=0;x<=N;x++)
    for(y=0;y<=M;y++)

{

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

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

getch();

}

Автор: feodorv 11.12.2014, 20:23
Вы http://forum.vingrad.ru/forum/topic-381149.html темы.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)