我正在编写一个在 C 中实现链表的程序。这是我的程序。
/*Implementing a singly linked list in c*/
#include<stdio.h>
#include<stdlib.h>
#include<alloca.h>
struct node{
int data;
struct node* link;
}*start=NULL;
void main(){
char choice;
int data;
do{
printf("Enter data\n");
scanf("%d",&data);
struct node* temp;
temp=(struct node*)malloc(sizeof(struct node));
temp->data=data;
temp->link=NULL;
if(start==NULL)
start=temp;
else
{
struct node* traversing_pointer;
traversing_pointer=start;
while(traversing_pointer!=NULL)
traversing_pointer=traversing_pointer->link;
traversing_pointer->link=temp;
}
printf("Do you want to enter more");
choice=getchar();
}
while(choice=='y'|| choice=='Y');}
我基本上希望在链表中至少创建一个节点,这就是我使用 do、while 循环的原因。但是在第一个数据输入之后,程序在不接受choice
变量输入的情况下终止。这是我的输出。可以是什么
Enter data
45
Do you want to enter more
RUN FINISHED; exit value 10; real time: 2s; user: 0ms; system: 0ms
可能的错误是什么?