1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Помогите пожалуйста решить задачу: В задданой матрице удалить методом сдвига столбцы, не содержащие нулей. К сожалению не имею представления о методе сдвига =( Заранее благодарен.
Вот есть такое: Задание удалить из матрицы методом сдвига матрицы содержащие только нечетные элементы. Подскажите где в коде проверяется нечетность, буду под свое модифицировать...
#include <stdio.h> #include <conio.h> #define MAX 10
void findrow (int aN, int aM,int *aH,int a[][MAX],int b[MAX]); void delrow (int aN, int aM,int a[][MAX]);
void main() { //int i, j, k, u, N, M, H; int i, j, N, M, H, *h; //*h-ukazatel' na H int A[10][10], B[10]; clrscr(); //Uslovie zadachi printf ( "\n Uslovie postavlennoi zadachi:" ); printf ( "\n Udalit'iz matricy A metodom sdviga"); printf ( "\n stroki, sodergastchie tol'ko nechetnye elementy." );
/*Zapolnenie massiva*/ printf ( "\n \n Vvedite kolichestvo strok i kolonok matricy A," ); printf ( "\n pri uslovii chto kolichesnvo dolgno byt' bol'shie 0 i men'shie 10..." );
do { printf ( "\n \n Kolichestvo strok matricy A = " ); scanf ("%d", &N);
/*Raschetnaya chast*/ H=-1; h=&H; // sub (N, M, &H, A, B,1); // sub (N, M, &H, A, B,2); findrow (N, M, h, A, B); delrow (N, M, A);
if (H==-1) printf ( "\n Iz Matricy A ne udalili ni odnoi stroki.\n" ); else { printf ( "\n Iz Matricy A udaliny stroki:\n" ); for (i=0;i<H+1;i++) printf ("%3d",B[i]);
printf ("\n V rezul'tate imeem Matricy vida: \n"); for (i=0;i<N;i++) for (j=0;j<M;j++) { printf ("%3d",A[i][j]); if (j==M-1) printf ("\n"); }
void findrow (int aN, int aM,int *aH,int a[][MAX],int b[MAX]) { int i, j, k, u; for (i=0;i<aN;i++) { k=0; for (j=0;j<aM;j++) if ((a[i][j]%2)==0) { break; } else k++; if (k==aM) { *aH++; b[*aH]=i+1; } } }
void delrow (int aN, int aM,int a[][MAX]) { int i, j, k, u;
i=0; do { k=0; for (j=0;j<aM;j++) if ((a[i][j]%2)==0) { i++; break; } else k++; if (k==aM) { aN=aN-1; for (u=i;u<aN;u++) for (j=0;j<aM;j++) a[u][j]= a[u+1][j]; } } while (i<aN); }