Yvision.kz
kk
Разное
Разное
399 773 постов42 подписчика
Всяко-разно
0
11:13, 22 апреля 2011

Си тилиндеги есеп

Матрицадагы барлык диагональдарын максимумдарын табу

#include <stdio.h>

#include <conio.h>

#define nmax 100
void main()

{

clrscr();

int a[nmax][nmax];

int b[100];

int min,max;

int n,i,j,c,sum,k,l,p,k1;
printf("Vvedite n->");

scanf("%d",&n);//

for(i=1;i<=n;i++){

for(j=1;j<=n;j++){

printf("a[%d][%d]=",i,j);

scanf("%d",&a[i][j]);

}

}

printf("\n Matrisa a \n\n");

for (i=1;i<=n;i++){

for (j=1;j<=n;j++){

printf( " %d ",a[i][j]);

}

printf("\n");}
////

printf("\nbasti dioganal max\n");

for (l=1;l<=2*n-1;l++){

sum=0;

if(l<=n){

max=a[n][l];

for(i=n-l+1;i<=n;i++)

if (a[i][i-n+l]>max) max=a[i][i-n+l];
b[l]=max;

printf("\n max diagonal %i",max);

}

else{

if(l>n){

max=a[1][l-n+1];

for (i=1;i<=2*n-l;i++)

if (a[i][i+l-n]>max) max=a[i][i+l-n];

b[l]=max;

printf("\n max diagonal %i",max);

}

}

}

/// pobochny

printf("\n\n pobochnyi diagonal max \n");

for (l=1;l<=2*n-1;l++){

sum=0;if(l<=n)

{

max=a[l][1];

for (i=1;i<=l;i++)

if (a[i][l-i+1]>max) max=a[i][l-i+1];

b[l+(2*n-1)]=max;

printf("\n max diagonal %i",max);

}

else {

if(l>n){

max=a[l-n+1][n];

for (i=l-n+1;i<=n;i++)

if (a[i][l-i+1]>max) max=a[i][l-i+1];

b[l+(2*n-1)]=max;

printf("\n max diagonal %i",max);

}

}

}
printf("\n");
for (i=1;i<=2*(2*n-1);i++)

printf("%i ",b[i]);
getch();
}

 
0
723
2