Другие языки программирования и технологии

Язык Си. Определить S-сумму элементов на периметре матрицы.

Хорошо, что хоть какая-то попытка была. На будущее: код лучше публиковать на сайте pastebin.com, а не на этом сайте. Вычисление суммы периметра выделено полужирным шрифтом, остальное -- мелочи:

#include <time.h>
#include <stdio.h>
#include <stdlib.h>

#define MAX 100

main() {
    int a[100][100], n, m, r, c, s = 0;
    printf("введите размерность матрицы: ");
    scanf("%d%d", &n, &m);
    srand(time(NULL));
    printf("матрица из случайных чисел: \n");
    for (r = 0; r < n; ++r) {
        for (c = 0; c < m; ++c) printf(" %d", a[r][c] = rand() % 10);
        putchar('\n');
    }
    for (r = 0; r < n; ++r) s += a[r][0] + a[r][m - 1];
    for (c = 1; c < m - 1; ++c) s += a[0][c] + a[n - 1][c];
    printf("сумма элементов на периметре: %d\n", s);
}

Мелис Абдалов
Мелис Абдалов
93 674
Лучший ответ
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <time.h>

#define N 20
#define M 15

int main() {
    int a[N][M];
    size_t n, m;
    double sum = 0;

    for (n = 0; n < N; n++)
        for (m = 0; m < M; m++)
            a[n][m] = 1 + rand() % 1000;
    printf("\n");

    for (n = 0; n < N; n++, printf("\n"))
        for (m = 0; m < M; m++)
            printf("%5i", a[n][m]);

    for (n = 0; n < N; n++)
        for (m = 0; m < M; m++)
            if (!n || !m || n == N - 1 || m == M - 1)
                sum += (double)a[n][m];

    printf("\n\t\t\t\tSum = %.0f", sum);

    _getch();
    return 0;
}
Ринат Р
Ринат Р
50 171
А где твоя попытка?

Похожие вопросы