Ввод заранее неизвестного количества чисел массива с клавиатуры - C (СИ)
Формулировка задачи:
Как написать код, чтобы пользователь вводил числа в массив количество элементов которого не известно
Решение задачи: «Ввод заранее неизвестного количества чисел массива с клавиатуры»
textual
Листинг программы
#include <stdio.h>
#include <iostream>
#include <windows.h>
void main()
{
SetConsoleOutputCP(1251);
int *a;//Массив
int n=0;//Размерность
printf("Введите размерность массива: ");
scanf("%i",&n);
a = (int*) malloc (n * sizeof(int)); // Выделяем массиву память.
for (int i = 0;i<n;i++)
{
printf("a[%i] = ",i);
scanf("%i",&a[i]);
}
free(a);
}
Объяснение кода листинга программы
- Подключаются необходимые библиотеки
- Устанавливается кодировка консоли на 1251
- Объявляется массив 'a' типа int и переменная 'n' типа int, которая инициализируется значением 0
- Выводится сообщение с просьбой ввести размерность массива
- Пользователь вводит размерность массива с клавиатуры и значение сохраняется в переменной 'n'
- Массиву 'a' выделяется память с помощью функции malloc, где первый аргумент - это размерность массива, а второй - это размер одного элемента массива в байтах.
- Запускается цикл for, который выполняется столько раз, сколько указано в переменной 'n'.
- В каждой итерации цикла пользователю выводится сообщение
a[i] =и предлагается ввести значение для элемента массива с индексом i. - Значение сохраняется в элементе массива 'a' с индексом i.
- После завершения цикла массив 'a' освобождается от выделенной памяти с помощью функции free.
- Программа завершается.