Ввод/Вывод данных в динамический массив - C (СИ)
Формулировка задачи:
Помогите пожалуйста, нифига не получается Ввод/Вывод данных в динамический массив Си.
цикл 1. пока пользователь вводит 1 (признак да) мы вводим новые данные и заносим их в массив динамический.
и это может продолжаться произвольное количество раз. размер массива для тебя заранее неизвестен.
как только ввели 0 переходим к следующему циклу.
Цикл 2. выводит содержимое массива на экран.
Решение задачи: «Ввод/Вывод данных в динамический массив»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int main( int argc , char* argv[] ) { int * Arr = malloc(sizeof(int)); int Enter = -1; int i = 0, j = 0; while( 1 ) { scanf("%d",&Enter); if(Enter == 0) break; Arr[i++] = Enter; Arr = realloc(Arr, sizeof(int) * (i + 1)); } while(j < i) { printf("[ %d ] ",Arr[j++]); } getchar(); getchar(); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
- Arr (указатель на массив целых чисел)
- Enter (целое число, используемое для чтения значений из стандартного ввода)
- i (целое число, счетчик элементов массива)
- j (целое число, счетчик элементов массива)
- В цикле while программа читает значения от пользователя и сохраняет их в массиве Arr.
- Сначала происходит попытка освободить память, выделенную под массив Arr, и выделить новую память под массив, размер которого на 1 больше, чем текущий размер массива.
- Если пользователь ввел 0, то цикл прерывается.
- Значение, введенное пользователем, сохраняется в массиве Arr и увеличивается счетчик i.
- После окончания цикла, программа выводит все элементы массива Arr с помощью цикла while.
- Значения массива выводятся с помощью функции printf.
- Счетчик j инициализируется значением 0 и увеличивается на 1 после каждой итерации цикла.
- В конце программы происходит считывание двух символов с помощью функции getchar, чтобы программа не закрылась сразу после вывода последнего элемента массива.
- Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д