Си — Клёвый код https://coolcode.ru Скриптописание и кодинг Tue, 12 Dec 2017 03:30:37 +0000 ru-RU hourly 1 https://wordpress.org/?v=5.8.9 https://coolcode.ru/wp-content/uploads/2015/10/YO1-150x150.png Си — Клёвый код https://coolcode.ru 32 32 Решаем задачи Абрамян на C. Matrix78 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix78/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix78/#comments Wed, 05 Apr 2017 07:55:43 +0000 http://coolcode.ru/?p=13177

Matrix78. Дана матрица размера $$M \times N$$. Упорядочить ее строки так, чтобы их минимальные элементы образовывали убывающую последовательность.

Решение:

#include <stdio.h>

int N;


int GetValueMatrixRowMin(int mat[10][10], int x){
    int j,min=0;
    if (x>=0){
        for (j=0; j<N; ++j){
            if (mat[x][j]<mat[x][min]) min=j;
        }
    }
    return mat[x][min];
}

int main(void)
{
    int a[10][10];
    int m;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&N);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<N; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int m2=m,i2;
        for (i=0; i<m-1; ++i){
            i2=0;
            --m2;
            while (i2<m2){
                if (GetValueMatrixRowMin(a,i2)<GetValueMatrixRowMin(a,i2+1)){
                    for (j=0;j<N; ++j) {
                        a[i2][j]+=a[i2+1][j];
                        a[i2+1][j]=a[i2][j]-a[i2+1][j];
                        a[i2][j]=a[i2][j]-a[i2+1][j];
                    }
                }
                ++i2;
            }
        }

    for (i=0; i<m; ++i){
        printf(" : %i_",GetValueMatrixRowMin(a,i));
           for (j=0; j<N; ++j) printf(" : %i", a[i][j]);
           printf(" : \n");
       }

    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix78/feed/ 2
Решаем задачи Абрамян на C. Matrix77 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix77/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix77/#respond Tue, 04 Apr 2017 06:55:01 +0000 http://coolcode.ru/?p=13174

Matrix77. Дана матрица размера $$M \times N$$. Упорядочить ее столбцы так, чтобы их последние элементы образовывали убывающую последовательность.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    for (i=0; i<m; ++i){
           for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
           printf(" : \n");
       }
           printf(" : \n");

    int n2=n,j2;
        for (j=0; j<n-1; ++j){
            j2=0;
            --n2;
            while (j2<n2){
                if (a[m-1][j2]<a[m-1][j2+1])
                    for (i=0;i<m; ++i) {
                        a[i][j]+=a[i][j2+1];
                        a[i][j2+1]=a[i][j]-a[i][j2+1];
                        a[i][j]=a[i][j]-a[i][j2+1];
                    }
                ++j2;
            }
        }

    for (i=0; i<m; ++i){
           for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
           printf(" : \n");
       }

    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix77/feed/ 0
Решаем задачи Абрамян на C. Matrix76 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix76/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix76/#respond Mon, 03 Apr 2017 04:46:04 +0000 http://coolcode.ru/?p=13172

Matrix76. Дана матрица размера $$M \times N$$. Упорядочить ее строки так, чтобы их первые элементы образовывали возрастающую последовательность.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int m2=m,i2;
        for (i=0; i<m-1; ++i){
            i2=0;
            --m2;
            while (i2<m2){
                if (a[i2][0]>a[i2+1][0])
                    for (j=0;j<n; ++j) {
                        a[i2][j]+=a[i2+1][j];
                        a[i2+1][j]=a[i2][j]-a[i2+1][j];
                        a[i2][j]=a[i2][j]-a[i2+1][j];
                    }
                ++i2;
            }
        }

    for (i=0; i<m; ++i){
           for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
           printf(" : \n");
       }

    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix76/feed/ 0
Решаем задачи Абрамян на C. Matrix75 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix75-2/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix75-2/#respond Sun, 02 Apr 2017 04:41:20 +0000 http://coolcode.ru/?p=13169

Matrix75. Дана матрица размера $$M \times N$$. Элемент матрицы называется ее локальным максимумом, если он больше всех окружающих его элементов. Поменять знак всех локальных максимумов данной матрицы на противоположный. При решении допускается использовать вспомогательную матрицу.

Решение:

#include <stdio.h>

int main(void)
{
    int b[10][10],a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int num;
    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j){
            num=0;
            if (i-1>=0) {
                if (a[i][j]>a[i-1][j]) num++;
            } else ++num;
            if ((i+1)<m){
                if (a[i][j]>a[i+1][j]) num++;
            } else ++num;
            if (j-1>=0) {
                if (a[i][j]>a[i][j-1]) num++;
            } else ++num;
            if ((j+1)<n){
                if (a[i][j]>a[i][j+1]) num++;
            } else ++num;

            if (num==4) b[i][j]=-a[i][j];
            else b[i][j]=a[i][j];
        }
    }

    for (i=0; i<m; ++i)
        for (j=0; j<n; ++j) a[i][j]=b[i][j];

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix75-2/feed/ 0
Решаем задачи Абрамян на C. Matrix74 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix74/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix74/#respond Sat, 01 Apr 2017 06:12:04 +0000 http://coolcode.ru/?p=13125

Matrix74. Дана матрица размера $$M \times N$$. Элемент матрицы называется ее локальным минимумом, если он меньше всех окружающих его элементов. Заменить все локальные минимумы данной матрицы на нули. При решении допускается использовать вспомогательную матрицу.

Решение:

#include <stdio.h>

int main(void)
{
    int b[10][10],a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int num;
    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j){
            num=0;
            if (i-1>=0) {
                if (a[i][j]<a[i-1][j]) num++;
            } else ++num;
            if ((i+1)<m){
                if (a[i][j]<a[i+1][j]) num++;
            } else ++num;
            if (j-1>=0) {
                if (a[i][j]<a[i][j-1]) num++;
            } else ++num;
            if ((j+1)<n){
                if (a[i][j]<a[i][j+1]) num++;
            } else ++num;

            if (num==4) b[i][j]=0;
            else b[i][j]=a[i][j];
        }
    }

    for (i=0; i<m; ++i)
        for (j=0; j<n; ++j) a[i][j]=b[i][j];

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix74/feed/ 0
Решаем задачи Абрамян на C. Matrix73 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix73/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix73/#respond Fri, 31 Mar 2017 05:56:27 +0000 http://coolcode.ru/?p=13123

Matrix73. Дана матрица размера $$M \times N$$. После последнего столбца, содержащего только отрицательные элементы, вставить столбец из нулей. Если требуемых столбцов нет, то вывести матрицу без изменений.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    for (j=n-1; j>=0; --j){
        for (i=0; i<m; ++i){
            if (a[i][j]>0) break;
        }
        if (i==n) break;
    }



    int column=j;
    ++n;
    for (j=n-1; j>column+1; --j)
        for (i=0; i<n; ++i)
            a[i][j]=a[i][j-1];

    for (i=0; i<n; ++i) a[i][column+1]=0;

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix73/feed/ 0
Решаем задачи Абрамян на C. Matrix72 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix72/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix72/#respond Thu, 30 Mar 2017 05:42:58 +0000 http://coolcode.ru/?p=13120

Matrix72. Дана матрица размера $$M \times N$$. Перед первым столбцом, содержащим только положительные элементы, вставить столбец из единиц. Если требуемых столбцов нет, то вывести матрицу без изменений.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    for (j=0; j<n; ++j){
        for (i=0; i<m; ++i){
            if (a[i][j]<0) break;
        }
        if (i==n) break;
    }



    int column=j;
    ++n;
    for (j=n-1; j>column; --j)
        for (i=0; i<n; ++i)
            a[i][j]=a[i][j-1];

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix72/feed/ 0
Решаем задачи Абрамян на C. Matrix71 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix71/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix71/#respond Wed, 29 Mar 2017 05:33:49 +0000 http://coolcode.ru/?p=13116

Matrix71. Дана матрица размера $$M \times N$$. Продублировать столбец матрицы, содержащий ее минимальный элемент.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int mini=0,maxj=0;
    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j){
            if (a[i][j]<a[mini][maxj]){
                mini=i;
                maxj=j;
            }
        }
    }


    ++n;
    for (j=n-1; j>maxj; --j)
        for (i=0; i<n; ++i)
            a[i][j]=a[i][j-1];

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix71/feed/ 0
Решаем задачи Абрамян на C. Matrix70 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix70/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix70/#respond Tue, 28 Mar 2017 04:29:34 +0000 http://coolcode.ru/?p=13111

Matrix70. Дана матрица размера $$M \times N$$. Продублировать строку матрицы, содержащую ее максимальный элемент.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n,k;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    int maxi=0, maxj=0;
    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j){
            if (a[i][j]>a[maxi][maxj]){
                maxi=i;
                maxj=j;
            }
        }
    }


    ++m;
    for (i=m-1; i>maxi; --i)
        for (j=0; j<n; ++j)
            a[i][j]=a[i-1][j];


    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

 

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix70/feed/ 0
Решаем задачи Абрамян на C. Matrix69 https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix69/ https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix69/#respond Mon, 27 Mar 2017 04:29:09 +0000 http://coolcode.ru/?p=13108

Matrix69. Дана матрица размера $$M \times N$$ и целое число $$K$$ $$(1 \le K \le $$N$$)$$. После столбца матрицы с номером $$K$$ вставить столбец из единиц.

Решение:

#include <stdio.h>

int main(void)
{
    int a[10][10];
    int m,n,k;

    printf("M: ");
    scanf("%i",&m);
    printf("N: ");
    scanf("%i",&n);
    printf("K: ");
    scanf("%i",&k);

    int i,j;
    for (i=0; i<m; ++i){
        printf("%i : \n", i+1);
        for (j=0; j<n; ++j){
            printf("%i : ", j+1);
            scanf("%i", &a[i][j]);
        }
    }

    ++n;
    for (j=n-1; j>k; --j)
        for (i=0; i<n; ++i)
            a[i][j]=a[i][j-1];

    for (i=0; i<m; ++i) a[i][k]=1;

    for (i=0; i<m; ++i){
        for (j=0; j<n; ++j) printf(" : %i", a[i][j]);
        printf(" : \n");
    }
    return 0;
}

Другие задачи из раздела Matrix можно посмотреть здесь.

]]>
https://coolcode.ru/reshaem-zadachi-abramyan-na-c-matrix69/feed/ 0