Вывести на экран весь список введенных элементов - C (СИ)
Формулировка задачи:
Вводить с клавиатуры числовые элементы до тех пор, пока не будет введен 0. После этого вывести на экран весь список введенных элементов.
Напишите пожалуйста программу на СИ.
Решение задачи: «Вывести на экран весь список введенных элементов»
textual
Листинг программы
#include <stdio.h>
#include <glib.h>
int main(void) {
int n;
GSList * list = NULL, * iter;
while ( printf("> ") && scanf("%d", &n) == 1 && n )
list = g_slist_append(list, GINT_TO_POINTER(n));
for ( iter = list; iter; iter = iter->next )
printf("%d\n", GPOINTER_TO_INT(iter->data));
g_slist_free(list);
return 0;
}
Объяснение кода листинга программы
В этом коде используется язык программирования C, и задача заключается в выводе на экран всех элементов, введенных пользователем.
- #include
- подключает стандартную библиотеку C для работы с консолью - #include
- подключает библиотеку Glib, которая используется для работы со списками (linked lists) - int main(void) - функция main(), которая является точкой входа в программу
- int n; - переменная типа int для хранения значения, введенного пользователем
- GSList list = NULL, iter; - объявление двух переменных: list - указатель на голову списка, iter - итератор для прохода по списку
- while ( printf(
>) && scanf(%d, &n) == 1 && n ) - цикл while, который выполняется до тех пор, пока пользователь вводит число больше нуля - list = g_slist_append(list, GINT_TO_POINTER(n)); - добавление нового элемента в список
- for ( iter = list; iter; iter = iter->next ) - цикл for для прохода по всем элементам списка
- printf(
%d\n, GPOINTER_TO_INT(iter->data)); - вывод значения элемента списка на экран - g_slist_free(list); - освобождение памяти, занятой списком
- return 0; - завершение функции main() и программы в целом Пользователь вводит числа, которые добавляются в список в порядке их ввода. Затем программа выводит все числа из списка в обратном порядке (от последнего к первому). После вывода всех чисел программа освобождает память, занятую списком, и завершает свою работу.