.
Microsoft visual c++ 2008. Урок 8. Массивы.
Автор megabax   
22.11.2010 г.
New Page 1

Microsoft visual c++ 2008. Урок 8. Массивы.

Предположим, перед нами стоит такая задача: подсчитать, сколько каждой из цифр от 0 до 9 содержится в текстовом файле. Если мы будем использовать материалы прошлых уроков, то нам понадобиться создать 10 счетчиков. Для каждой из цифр. Согласитесь. это не очень удобно. Если бы нам пришлось считать элементы, которых, скажем, 100 или больше. Тут вообще вешалки полные получаются. К счастью, в С++ есть такое понятие, как массивы.  Вот на них то мы и реализуем наш пример с подсчетом цифр:

#include "stdafx.h"
#include <conio.h>
#include <stdio.h>
#define eof -1
#define maxind 10


int _tmain(int argc, _TCHAR* argv[])
{
     int c; //для ввод символа
     int nd[maxind]; //для подсчета количества обнаруженных в файле цифр. Для 0 индекс 0, для 1 - 1 и так далее до 9.
     int i;
     for(i=0; i<maxind; i++) nd[i]=0; //обнуление элементов массива
     printf("Input string and press <ENTER>\n");

     while((c=getchar())!=eof) {
            if(c>='0'&&c<='9') ++nd[c-'0']; //если нашли цифру, увеличим на 1 соответствующий счетчик
     };
     printf("Count of digits:\n");
     for(i=0; i<maxind; i++) printf("digit: %d is count %d\n",i,nd[i]);
     printf("Press any key to continue");
     _getch();
     return 0;
}

Запустим нашу программу на тестирование:

Microsoft visual c++ 2008. Урок 8. Одномерные массивы.

И, в заключении, несколько комментариев к коду.

Массив для подсчета цифр у нас объявлен вот так:

 int nd[maxind];

В квадратных скобках  мы указали количество элементов в массиве. Через такие же скобки происходит и обращение к элементам массива. Для самого первого элемента обращение будет [0], для второго [1] и так далее, счет идет с нуля. Вместо цифры может быть переменна, таким образом, зная количество элементов в массиве мы может обойти его в цикле.

Мы в своей программе использовали одномерный массив. Но бывают еще и многомерные массивы.  Он может быть объявлен, например, так:

 int nd[10][12];

Обращение к такому массиву происходит уже по двум индексам:

nd[i][j]=myvar;

Количество индексов (размерность) может быть сколько угодно. Даже десять и больше.

 


Скриншоты, помеченные знаком *, являются цитатами и иллюстрациями  в соответствии со ст. 1274 ГК РФ программного продукта "Microsoft Visual C++ Express Edition", авторское право на который принадлежит корпорации Microsoft.. 


Последнее обновление ( 12.02.2014 г. )