Главная > Уроки > Зачем нужны массивы?

Записывайся на этот курс на Stepike!

Зачем нужны массивы?

Начнём, как обычно, с задач, которые покажут, что тех инструментов, что у нас есть, недостаточно.

Помните программу для проверки равномерности распределения случайных чисел, генерируемых функцией rand? Я напомню.

Листинг 1.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 100

int main(void) {   
  srand(time(NULL));
// счётчики для сгенерированных чисел
// если выпадет 1, то увеличим на единицу count_1
  int count_0 = 0, count_1 = 0, count_2 =0;

  int rand_number;
  
  for (int i = 0; i < N; i = i + 1){
    rand_number = rand()%3;  
    switch (rand_number){
      case 0 : count_0 = count_0 + 1; break;
      case 1 : count_1 = count_1 + 1; break;
      case 2 : count_2 = count_2 + 1; break;
    }
  }

  printf("0 - %d\n1 - %d\n2 - %d\n", count_0, count_1, count_2);
  return 0;
}

Программа подсчитывает, сколько раз сгенерировано каждое из чисел 0, 1 и 2. Теперь вопрос. А что делать, если нужно провести миллион генераций для чисел от 0 до 100? Не создавать же 100 переменных?

Более общая задача: как сохранить в программе очень много однотипных данных, например, чисел?

Это может потребоваться, если мы ведём историю обращений в поликлинику и должны записывать серию и номер паспорта каждого обратившегося. Или мы хотим хранить данные о доходах и расходах в текущем месяце. Или записывать сумму баллов ЕГЭ для всех абитуриентов вуза. Или динамику курса валюты за сутки/месяц/год.

Для решения подобных задач (хранение большого количества однотипных данных) используются массивы. В этом уроке мы познакомимся с этим понятием.

Сохрани в закладки или поддержи проект.

Практика

  1. заданий нет

Дополнительные материалы

  1. пока нет

Оставить комментарий

Чтобы код красиво отображался на странице заключайте его в теги [code] здесь писать код [/code]

Комментарии

Николай Евсюков
"как сохранить в программе очень однотипных данных, например, чисел?".
Видимо опечатка - наверное пропущено слово "много".
KaDeaT
Так точно. Спасибо за внимательность. Поправил.