Ввод/Вывод данных в динамический массив - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены следующие переменные:
    • Arr (указатель на массив целых чисел)
    • Enter (целое число, используемое для чтения значений из стандартного ввода)
    • i (целое число, счетчик элементов массива)
    • j (целое число, счетчик элементов массива)
  2. В цикле while программа читает значения от пользователя и сохраняет их в массиве Arr.
    • Сначала происходит попытка освободить память, выделенную под массив Arr, и выделить новую память под массив, размер которого на 1 больше, чем текущий размер массива.
    • Если пользователь ввел 0, то цикл прерывается.
    • Значение, введенное пользователем, сохраняется в массиве Arr и увеличивается счетчик i.
  3. После окончания цикла, программа выводит все элементы массива Arr с помощью цикла while.
    • Значения массива выводятся с помощью функции printf.
    • Счетчик j инициализируется значением 0 и увеличивается на 1 после каждой итерации цикла.
  4. В конце программы происходит считывание двух символов с помощью функции getchar, чтобы программа не закрылась сразу после вывода последнего элемента массива.
  5. Программа возвращает 0, что означает успешное выполнение.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.556 из 5
Похожие ответы