Если приходит символ, то запустить блок создания массива в два столбика и n-ое колличество строк - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Парни помогите, я никак не могу понять, и мне

никто не может нормально объяснить

! Сколько уже всего пересмотрел не понимаю - уже начинается паника. Мне нужно следующее: - если приходит символ, то запустить блок создания массива в два столбика и n-ое колличество строк (пришёл 5-ый символ, значит нужно в массив добавть пятую строчку) (пришёл 6-ой символ, значит к тому массиву из 5ти строк, добавить шестую!) я пытаюсь уже (4ый день) реализовать эту фигню и не могу, и никто видимо не может! скоро повешусь к чертям... как я понял алгоритм должен быть такой:
1 - сначала мы выделили память под указатель 2 - потом мы выделили память под строчку 3 - сформируем строчку 4 - адрес сформированной строки запишем в указатель
помогите, мне срочно надо!

Решение задачи: «Если приходит символ, то запустить блок создания массива в два столбика и n-ое колличество строк»

textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
 
typedef struct MyNode
{
    int index;
    char letter;
    struct MyNode *next;
} Node;
 
int main(void)
{
    Node *head, *tail, *newptr;
    char c;
    head = tail = newptr = NULL;
    while(c = getchar())
    {
        newptr = (Node*)malloc(sizeof(Node));
        newptr->letter = c;
        newptr->index = 1;
        newptr->next = NULL;
        if (head)
        {
            tail->next = newptr;
            tail = tail->next;
        }
        else
            head = tail = newptr;
    }
    return 0;
}

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

В данном коде создается двумерный массив (коллекция) структур данных типа MyNode. Для этого используется динамическое выделение памяти с помощью функции malloc. Каждый элемент массива (структура MyNode) содержит в себе индекс, букву и указатель на следующий элемент. Пользователю предлагается ввести символы, которые будут добавлены в этот массив. При каждом введенном символе создается новый элемент массива и добавляется в конец списка. При этом индекс каждого нового элемента устанавливается равным 1. Когда пользователь вводит символ, создается новый элемент массива, который добавляется в конец списка. При этом указатель tail указывает на последний элемент списка, а указатель head указывает на первый элемент списка. Когда пользователь прекращает ввод символов, список считается полным. Для корректного завершения работы программы необходимо выполнить обязательные действия:

  1. Освободить память, выделенную под каждый элемент массива.
  2. Указатель head указывает на первый элемент массива, а указатель tail указывает на последний элемент массива.
  3. Пройти по всем элементам массива с помощью цикла и вывести на экран значения индекса и буквы каждого элемента.

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

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