Я делал простой программный код, в который вы вводите данные, и после каждого ввода программа будет спрашивать вас, хотите ли вы добавить еще один.если бы вы ввели любое другое значение, кроме «Y», то он завершил бы цикл и отобразил бы все ваши данные, но я не могу заставить его работать, потому что после первого цикла, который является частью «do» вцикл do-while, но при вводе второго значения данных он просто выходит из режима
#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <mem.h>
#include <ctype.h>
#include <windows.h>
typedef struct node {
int data;
node *next;
};
int main() {
node *start, *new_node, *top_node ;
int Ctr=1;
char choice;
system("cls");
start = NULL;
new_node = (node*)malloc(sizeof(node));
start = new_node;
printf("Creating Stacks!!!\n\n");
do{
printf("Enter Data to be inputted into stacks : ");
scanf("%d", &new_node -> data);
printf("Would you like to add another number? : ");
scanf(" %c", &choice);
if (toupper(choice) == 'Y')
{
new_node -> next = (node*)malloc(sizeof(node));
new_node = new_node -> next;
new_node -> next = start;
start = new_node;
new_node = NULL;
Ctr++;
}
}while(toupper(choice) =='Y');
system("cls");
printf("Displaying Content of Stacks!!!\n\n");
top_node = start;
Ctr = 1;
do
{
if(start == NULL)
{
printf("The Stack is Empty!\n");
}
else {
printf("Node No. %d Content : \n", Ctr);
printf("\tData => %d \n", top_node -> data);
Ctr++;
top_node = top_node -> next;
}
}while(top_node != NULL);
getch();
return 0;
}