Online C Compiler
Открыть в компиляторе

Учебная версия на русском. Код и его вывод сохранены в исходном виде.

Массивы в C

Работайте с индексами, обходами и матрицами, явно учитывая длину и границы.

Открыть в компиляторе

Массивы в C
Работайте с индексами, обходами и матрицами, явно учитывая длину и границы.

Массив состоит из последовательных элементов одного типа. Индексы массива из N элементов лежат от 0 до N - 1. C не проверяет их автоматически; обращение за пределы объекта вызывает неопределённое поведение.

Инициализируйте данные до чтения, соблюдайте длину в циклах и проверяйте успешность ввода. Передавая массив в функцию, передавайте также число действительных элементов.

Матрица C — массив массивов, размещённый по строкам. Принимающей функции нужны размеры, достаточные для вычисления адресов. Матрица и массив указателей — разные представления данных.

Там, где доступен полный массив, sizeof array / sizeof array[0] даёт число элементов. Для параметра-указателя эта формула неверна. Проверяйте массив из одного элемента, первый и последний допустимые индексы.

Код C

#include <stdio.h>

int main(void) {
    int scores[5] = {70, 85, 90, 65, 100};
    int grid[2][3] = {
        {1, 2, 3},
        {4, 5, 6}
    };
    int n = sizeof(scores) / sizeof(scores[0]);
    int sum = 0;

    for (int i = 0; i < n; i++) {
        sum += scores[i];
    }
    printf("Elements: %d\n", n);
    printf("Sum: %d\n", sum);
    printf("Average: %.1f\n", (double)sum / n);

    printf("2D array:\n");
    for (int r = 0; r < 2; r++) {
        for (int c = 0; c < 3; c++) {
            printf("%d ", grid[r][c]);
        }
        printf("\n");
    }
    return 0;
}
Открыть в компиляторе

Ожидаемый вывод

Elements: 5
Sum: 410
Average: 82.0
2D array:
1 2 3 
4 5 6 

Частые вопросы

Почему код и вывод остаются на английском?

Ключевые слова, идентификаторы и строки, проверяемые тестами, сохранены, чтобы не менять программу. Объяснения и элементы управления переведены.