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

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

Ввод и обход массива на C

Читайте элементы через scanf и обрабатывайте массив в пределах его вместимости.

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

Ввод и обход массива на C
Читайте элементы через scanf и обрабатывайте массив в пределах его вместимости.

Задайте вместимость и проверьте число элементов перед вводом. Для целого числа scanf получает адрес элемента: &arr[i]. Прежде чем использовать значение, убедитесь, что чтение прошло успешно.

Допустимы индексы от 0 до N - 1. При вводе, обработке и выводе используйте одну длину. Условие i <= N даёт лишнее обращение. Вместимость буфера может быть больше числа действительно заполненных элементов.

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

Код C

#include <stdio.h>

#define MAX_SIZE 100

int main(void) {
    int arr[MAX_SIZE];
    int n;
    int sum = 0;

    printf("Enter number of elements (1 to %d): \n", MAX_SIZE);
    if (scanf("%d", &n) != 1 || n <= 0 || n > MAX_SIZE) {
        fprintf(stderr, "Error: Invalid number of elements.\n");
        return 1;
    }

    printf("Reading %d integers from input...\n", n);
    for (int i = 0; i < n; i++) {
        if (scanf("%d", &arr[i]) != 1) {
            fprintf(stderr, "Error reading element at index %d.\n", i);
            return 1;
        }
        sum += arr[i];
    }

    printf("\n--- Array Elements Summary ---\n");
    for (int i = 0; i < n; i++) {
        printf("arr[%d] = %d (Address: %p)\n", i, arr[i], (void *)&arr[i]);
    }

    double average = (double)sum / n;
    printf("\nTotal Sum = %d\n", sum);
    printf("Average   = %.2f\n", average);

    return 0;
}
Открыть в компиляторе

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

Enter number of elements (1 to 100): 
Reading 5 integers from input...

--- Array Elements Summary ---
arr[0] = 10 (Address: 0x...)
arr[1] = 25 (Address: 0x...)
arr[2] = 40 (Address: 0x...)
arr[3] = 55 (Address: 0x...)
arr[4] = 70 (Address: 0x...)

Total Sum = 200
Average   = 40.00

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

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

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