Как внести несколько элементов из структуры в стек? - C (СИ)
Формулировка задачи:
Я ввожу данные с клавиатуры.Элементы в структуре. Не могу понять как их внести в стек.
#include <conio.h>
#include <stdio.h>
#include < iostream>
#define ERROR_OPEN_FILE -3
struct semicircle{
int x;
int y;
int x0;
int y0;
int r;
semicircle *next;
};
void main(int argc, char *argv[]) {
struct semicircle sm ;
int answer;
int value = 0;
int menu;
int yn;
start:
printf("\nDo your selection:\n1.List\n2.Add\n3.Find\n4.Exit\n");
printf("Selection: ");
scanf("%d",&menu);
if (menu==1){ label1:
printf ("\nSelect an option: 1-Continue or 0-Exit\n");
scanf("%d",&answer);
if(answer == 1)
{goto start;}
else
{goto exit;}}
else if(menu==2){
printf ("\nSelect an option: 1-Continue or 0-Exit\n");
scanf("%d",&answer);
if(answer == 1)
{goto start;}
else
{goto exit;}
}
else if(menu==3){label3:
printf ("\nSelect an option: 1-Continue or 0-Exit\n");
scanf("%d",&answer);
if(answer == 1)
{goto start;}
else
{goto exit;}
}
else if(menu==4);{
exit:
exit(0);}
}Решение задачи: «Как внести несколько элементов из структуры в стек?»
textual
Листинг программы
void search(semicircle *begin,double s){
semicircle *new_el=begin;
while (new_el!=NULL)
{ if(s==new_el->x){
printf(" %f\t",new_el->x);}
// выводим содержимое полей элемента
new_el=new_el->next;}
printf(" \n");
}
Объяснение кода листинга программы
- В данном коде происходит поиск элемента в списке по заданному значению
s. - Переменная
new_elинициализируется значениемbegin, что указывает на начало списка. - Затем в цикле
whileпроисходит проход по всем элементам списка до тех пор, покаnew_elне станет равнымNULL, что означает достижение конца списка. - Внутри цикла проверяется равенство значения
sи значения поляxтекущего элемента спискаnew_el. Если равенство найдено, то выводится значение поляxс помощью функцииprintf. - После выхода из цикла
whileвыводится символ новой строки с помощью функцииprintfдля перехода на новую строку вывода.