Olimpiada de Informática One Pass 1.5: Matriz (2)

La primera parte del lenguaje C ++

Capítulo 5 Matrices

La matriz bidimensional de la segunda sección

1119 Fila de intercambio de matriz
#include <iostream>
using namespace std;

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

    for (int i = 0; i < 5; i ++ ) {
        for (int j = 0; j < 5; j ++ ) {
            cin >> a[i][j];
        }
    }

    cin>>m>>n;

    for (int i = 0; i < 5; i ++ ) {
        swap(a[m-1][i], a[n-1][i]);
    }

    for (int i = 0; i < 5; i ++ ) {
        for (int j = 0; j < 5; j ++ ) {
            cout << a[i][j] << ' ';
        }
        cout << endl;
    }

    return 0;
}
1120 Suma de diagonales en la misma fila
​#include <cstdio>
using namespace std;

int main(){
    int n, x, y;

    scanf("%d%d%d", &n, &x, &y);

    for (int j = 1; j <= n; j ++ ) printf("(%d,%d) ", x, j);
    printf("\n");

    for (int i = 1; i <= n; i ++ ) printf("(%d,%d) ", i, y);
    printf("\n");

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= n; j ++ ) {
            if (j-i == y-x) printf("(%d,%d) ", i, j);
        }
    }
    printf("\n");

    for (int i = n; i >= 1; i -- ) {
        for (int j = 1; j <= n; j ++ ) {
            if (i+j == x+y) printf("(%d,%d) ", i, j);
        }
    }
    printf("\n");

    return 0;
}
1121 Calcular la suma de los elementos de borde de la matriz
#include <iostream>
using namespace std;

int main(){
    int m, n, a[100][100], sum = 0;

    cin >> m >> n;

    for (int i = 0; i < m; i ++ ) {
        for (int j = 0; j < n; j ++ ) {
            cin >> a[i][j];

            if (i == 0 || i == m-1 || j == 0 || j == n-1) {
                sum += a[i][j];
            }
        }
    }

    cout << sum << endl;

    return 0;
}
1122 Calcular el punto de silla
#include <cstdio>
using namespace std;

int main() {
    int a[5][5];

    for (int i = 0; i < 5; i ++ ) {
        for (int j = 0; j < 5; j ++ ) {
            scanf("%d", &a[i][j]);
        }
    }

    for (int i = 0; i < 5; i ++ ) {
        int max = 0;
        for (int j = 1; j < 5; j ++ ) {
            if (a[i][j] > a[i][max]) max = j;
        }

        int min = 0;
        for (int k = 1; k < 5; k ++ ) {
            if (a[k][max] < a[min][max]) min = k;
        }

        if (min == i) printf("%d %d %d\n", i+1, max+1, a[i][max]);
    }

    return 0;
}
1123 Similitud de imagen
#include <cstdio>
using namespace std;

int main() {
    int n, m, cnt = 0;
    scanf("%d %d", &n, &m);
    int a[105][105], b[105][105];

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

    for (int i = 1; i <= n; i++ ) {
        for (int j = 1; j <= m; j ++ ) {
            scanf("%d", &b[i][j]);
        }
    }

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= m; j ++ ) {
            if ( a[i][j] == b[i][j]) cnt ++;
        }
    }

    printf("%.2f", 100.0 * cnt / (n * m));

     return 0;
}
1124 Adición de matriz
#include <cstdio>
using namespace std;

int main() {
    int n, m, a[105][105], b[105][105];
    scanf("%d %d", &n, &m);

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

    for (int i = 1; i <=n ; i ++ ) {
        for (int j = 1; j <= m; j ++ ) {
            scanf("%d", &b[i][j]);
        }
    }

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= m; j ++ ) {
            printf("%d ", a[i][j] + b[i][j]);
        }
        printf("\n");
    }

     return 0;
}
1125 Multiplicación de matrices
#include <cstdio>
using namespace std;

int main() {
    int n, m, k;
    scanf("%d %d %d", &n, &m, &k);
    int a[105][105], b[105][105], c[105][105] = {};

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

    for (int i = 1; i <= m; i++ ) {
        for (int j = 1; j <= k; j ++ ) {
            scanf("%d", &b[i][j]);
        }
    }

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= k; j ++ ) {
            for (int l = 1; l <= m; l ++ ) {
                c[i][j] += a[i][l] * b[l][j];
            }
            printf("%d ", c[i][j]);
        }
        printf("\n");
    }

     ret
1126 Transposición de matriz
#include <cstdio>
using namespace std;

int main() {
    int n, m, a[105][105];
    scanf("%d %d", &n, &m);

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

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

    return 0;
}
1127 Rotación de imagen
#include <cstdio>
using namespace std;

int main() {
    int n, m, a[105][105];
    scanf("%d %d", &n, &m);

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

    for (int i = 1;i <= m; i ++ ) {
        for (int j = n; j >= 1; j -- ) {
            printf("%d ", a[j][i]);
        }
        printf("\n");
    }

    return 0;
}
1128 Procesamiento de imágenes borrosas
#include <cstdio>
using namespace std;

int main() {
    int n, m, a[105][105], b[105][105];
    scanf("%d %d", &n, &m);

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= m; j ++ ) {
            scanf("%d", &a[i][j]);
            if (i == 1 || i == n || j == 1 || j == m) {
                b[i][j] = a[i][j];
            }
        }
    }

    double t;
    for (int i = 2; i <= n-1; i ++ ) {
        for (int j = 2; j <= m-1; j ++ ) {
            t = (a[i][j] + a[i-1][j] + a[i+1][j] + a[i][j-1] + a[i][j+1]) / 5.0;
            b[i][j] = (t * 10 + 5) / 10;
        }
    }

    for (int i = 1; i <= n; i ++ ) {
        for (int j = 1; j <= m; j ++ ) {
            printf("%d ", b[i][j]);
        }
        printf("\n");
    }

    return 0;
}

Si su hijo está en cuarto grado en adelante, está interesado en la programación de computadoras y tiene capacidad adicional para lecciones culturales, comuníquese con el servicio al cliente (ID de WeChat: xiaolan7321) para participar en el aprendizaje de la informática. Somos entrenadores profesionales de competencias de informática, utilizando métodos de enseñanza de clases pequeñas en línea, el objetivo es ayudar a los estudiantes de primaria y secundaria que aman la programación a lograr excelentes resultados en competencias de informática nacionales y extranjeras.

Funciones de enseñanza:

  • Enseñanza en línea en clases pequeñas, establezca una buena base de código. Evite el problema de "no puedo mantener el ritmo" o "no comer lo suficiente" en clases grandes.

  • Rica experiencia docente, familiarizado con la estructura de conocimiento y la capacidad de aprendizaje de los estudiantes, y organice el horario de manera razonable.

  • Practique con competencias y mejore continuamente las habilidades de los estudiantes a través de exámenes y competencias.

Supongo que te gusta

Origin blog.csdn.net/davidliule/article/details/106139623
Recomendado
Clasificación