.


:




:

































 

 

 

 





: , , .

/* 12. : , , . . */

// :

void in_matr(int x[ ][10], int m, int n); // m *n

//

void in_matr_rand(int x[ ][10], int m, int n); //

// m*n [-10, 10].

void out_matr(int x[ ][10], int m, int n); // m*n

// .

void processing(int x[ ][10], int *y, int m, int n); //
// m*n , "+"- ,
// y[ ].

void sort_columns(int x[ ][10], int m, int n); //

// m*n .

void rows_move(int x[ ][10], int m, int n); // 0-

// .

#include <stdio.h>

#include <conio.h>

void main()

{ int m, n, x[10][10], y[10] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1};

char ch;

printf(" *** Matrix Sort *** ");

printf("\n\n m<=10, n<=10: ");

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

printf("\n - 'c' \

- 'r'? - ");

scanf("%c%c", &ch, &ch);

if((ch=='c') || (ch=='C')) in_matr(x, m, n);

else { randomize(); in_matr_rand(x, m, n);}

printf("\n : %d*%d \n", m, n);

out_matr(x, m, n);

processing(x, y, m, n);

printf("\n \

: \n");

out_matr(x, m, n);

sort_columns(x, m, n);

printf("\n \

: \n");

out_matr(x, m, n);

printf("\n 0- \

: \n");

rows_move(x, m, n);

out_matr(x, m, n);

getch();

return 0;

} /* in_matr(), in_matr_rand() out_matr()
10. m n
. */

processing() m n
y[ ].

: m = 4, n = 4, y[ ] = { 10, 9, 8, 7 },

-1 -1 -1 -1 10 9 8 7

x = -2 2 -2 -2 => -2 2 -2 -2

-3 -3 -3 -3 10 9 8 7

4 -4 4 4 4 -4 4 4

 

void processing(int x[ ][10], int *y, int m, int n)

{ int i, j, k;

for (i = 0; i < m; i++) //

{ j = -1;

do // 'i' x[i][j] >= 0

{ j++;

if(x[i][j] >= 0 && j!= n) break; //

if(j == n) // 'i' "-"-

for (k=0; k<n; k++) x[i][k] = y[k];

}

while (j!= n);

}

/* rows_move() 0- m*n.

: m = 4, n = 4,

0 1 1 1 4 4 4 4

x = 2 2 2 2 => 2 2 2 2

0 3 3 3 0 3 3 3

4 4 4 4 0 1 1 1

*/

void rows_move(int x[ ][10], int m, int n)

{ int ii = 0, //

kk = n-1, //

//

i, j, k, w;

while(ii < kk)

{ for (i = ii; i < m-1; i++) //

if(x[i][0] == 0) break;

ii = i;

for (k = kk; k > ii; k- -) //

if(x[k][0]!= 0) break; //

kk = k;

if(ii < kk) // ii kk

for (j = 0; i < n; j++) // j k

{ w = x[ii][j];

x[ii][j] = x[kk][j];

x[kk][j] = w;

}

ii++, kk--;

}

}

/* sort_columns() m*n

.

: m = 4, n = 4,

3 1 2 0 0 1 2 3

x = 3 1 2 0 => 0 1 2 3

3 1 2 1 1 1 2 3

3 1 2 2 2 1 2 3

*/

void sort_columns(int x[ ][10], int m, int n)

{ int i, j, k, z;

for (j = 0; j < n-1; j++)

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

if (x[0][j] > x[0][k]) //

for (i = 0; i < m; i++) // j k

{ z = x[i][j];

x[i][j] = x[i][k];

x[i][k] = z;

}

}

1. n- ?

2. m n ( ).

3. n x n:

for(j = 0; j < n; j++)

for(i = n-1; i > j; i--) [i][j] = [ i - j ] [ n-1 - j ]

4. : ) k- ; ) k- .

5. sort_columns(). .

6. rows_move() ?

 





:


: 2015-10-01; !; : 715 |


:

:

,
==> ...

1528 - | 1506 -


© 2015-2024 lektsii.org - -

: 0.009 .