Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <locale.h>
- #define lmax 20
- int main()
- {
- setlocale(LC_ALL, "Rus");
- int A[lmax+1][lmax+1], B[lmax+1], n, m, k, i, j,t,l, flag_arr, flag, c, flag_i;
- printf("Лабораторная работа №2\n");
- printf("Задание №1\n");
- do
- {
- printf("Введите количество строк и столбцов матрицы от 1 до %d: \n", lmax);
- scanf("%d", &n);
- scanf("%d", &m);
- }
- while(n<=0 || n>lmax || m<=0 || m>lmax);
- printf("Введите значения элементов матрицы: ");
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- scanf("%d", &A[i][j]);
- }
- }
- do
- {
- printf("Введите длину массива от 1 до %d: ", lmax);
- scanf("%d", &k);
- }
- while(k<=0 || k>lmax);
- printf("Введите значения элементов массива: ");
- for(i=1; i<=k; i++) scanf("%d", &B[i]);
- printf("\nМатрица:\n");
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- printf("%8d", A[i][j]);
- }
- printf("\n");
- }
- printf("Массив: \n");
- for(i=1; i<=k;i++) printf("%8d ", B[i]);
- flag_arr=0;
- c=0;
- for(j=1;j<=m;j++)
- {
- i=1;
- do
- {
- flag_i=0;
- l=1;
- do
- {
- if(B[l++]==A[i][j]) flag_i=1;
- }
- while(l<=k && flag_i==0);
- i++;
- }
- while(i<=n && flag_i==1);
- if(flag_i==1)
- {
- flag_arr=1;
- for(i=1; i<=n-1; i++)
- {
- for(t=i+1; t<=n; t++)
- if(A[i][j]<A[t][j])
- {
- c=A[i][j];
- A[i][j]=A[t][j];
- A[t][j]=c;
- }
- }
- }
- }
- if(flag_arr==1)
- {
- printf("\nИзменённая матрица:\n");
- for(i=1;i<=n;i++)
- {
- for(j=1;j<=m;j++)
- {
- printf("%8d", A[i][j]);
- }
- printf("\n");
- }
- }
- else printf("\nМатрица осталась без изменений\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement