Я пытаюсь создать программу, в которой мы можем вводить детали Mess (Canteen) на C, используя односвязный список, такой как название еды, количество порций и т. Д. Здесь название еды находится в строке и после первого цикла при вводе названия еды программа не принимает никаких данных, а сразу переходит к функции «Ввести сервировки в функцию insertinto ()».
struct node{
char food[100];
int serv;
int weight;
int credits;
struct node *next;
}*head[6],*temp[6],*newnode[6]; //for 7 days a week
int insertinto(){
int d=0; //just for example
//linked list insertion
int ch=0;
while(ch==0){
head[d]=0;
newnode[d]=(struct node *)malloc(sizeof(struct node));
//newnodex->datax=xx;
printf("Enter food: ");
gets(newnode[d]->food); //error occurs here on second iteration of while loop
printf("Enter Servings: ");
scanf("%d",&newnode[d]->serv);
printf("Enter wt per Servings in gram: ");
scanf("%d",&newnode[d]->weight);
printf("Enter Credits required for the food to be consumed: ");
scanf("%d",&newnode[d]->credits);
newnode[d]->next=0;
if(head[d]==0){
head[d]=temp[d]=newnode[d];
}
else{
temp[d]->next=newnode[d];
temp[d]=newnode[d];
}
printf("Do you want to enter the data of more Food?(0=Yes): ");
scanf("%d",&ch);
}
};
int main()
{
insertinto();
}