Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Ввод массива с клавиатуры.






 
 

 

 


#define NMAX 1000

int main()

{

double x[NMAX]; //массив

int n; //текущий размер массива

int i; //параметр цикла

SetConsoleOutputCP(1251);

SetConsoleCP(1251);

do

{

printf(" Введите размер массива от 1 до %d=", NMAX);

scanf(" %d", & n);

}

while (n< 0 || n> NMAX);

for (i=0; i< n; i++)

{

printf(" x[%3d]=", i);

scanf(" %lf", & x[i]);

}

 

getch();

return 0;

}

Каждой переменной, как простой, так и массиву, при старте программы выделяется столько памяти, сколько определено описанием этой переменной. В данном случае массиву X выделяется память для размещения NMAX = 1000 элементов (1000 × 4 = 4000 байт). Это поле памяти может полностью или частично использоваться при работе программы. Очевидно, что при этом должно выполняться отношение 0 £ n £ NMAX, где n - текущий размер массива X, который будет использоваться в данном сеансе работы программы.

Если текущую длину определять, как беззнаковый целочисленный тип, то достаточно проверить, что значение n не превышает NMAX.

...

unsigned int n;

...

do

...

while (n> NMAX);

 

При отладке программы требуется производить ее многократный запуск с одними и теми же исходными данными для обнаружения и устранения синтаксических и семантических ошибок. При большом объеме исходных данных, в частности при наличии в их составе массивов, ввод данных с клавиатуры создает определенные неудобства для пользователя (при каждом запуске программы необходимо заново вводить все компоненты массива, что не исключает появление новых ошибок при вводе с клавиатуры и, как следствие, различие в результатах работы программы). Поэтому более предпочтительным является:

- ввод данных из текстового файла (будет рассмотрено позже). В этом случае массив формируется в файле один раз, а затем многократно используется в программе;

- инициализация массива проводится при его определении. При этом количество элементов массива можно указывать явно:

double y[5] = {10, 3.5, -.2, 4, 2e-5};

double z[5] = {10, 3.5, -.2 };

int b[3] = {1, 2, 3, 4};

или без явного указания количества элементов в массиве:

int a[] = {8, 2, 9, -7, 0, 15};

Массивы y и z определены вещественного типа количеством в 5 элементов. В фигурных скобках через запятую перечисляются значения, которые будут присвоены соответствующим элементам массивов. Если количество элементов инициализации меньше длины массива, то оставшиеся элементы будут заполняться нулями (z[3] = z[4] = 0).

Массив b определен длиной в 3 элемента, а количество инициализаторов – 4. В этом случае определяется ошибка при компиляции программы.

Длина массива a определяется по количеству инициализаторов, для данного примера она будет равна 6.

В случае инициализации массива при его определении вводить его значения с клавиатуры не нужно, но обязательно необходимо ввести текущую длину n и проверить ее на допустимый диапазон значений.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.