while(5){
printf("\n1-Insert_at_end\n2-search_value\n3-Display_list\n4-delete_entire_list\n");
printf("\n Your option\t");
scanf("%d\n",&o);
switch(o){
case 1:
insertion_at_end();
break;
case 2:
printf("element to search\n");
scanf("%d\n",&a);
search_value(a);
break;
case 3:
display_list();
break;
case 4:
delete_entire_list();
break;
default:
printf("inavalid option\n");
break;
}
答案 0 :(得分:2)
您的scanf
有一个额外的空白
scanf("%d\n",&o);
// ^^ <== read optional whitespace followed by digits
// ^^ <== read whitespace
此scanf仅在看到不是空白的内容时才会停止。例如,输入 Space Space 4 2 ENTER ENTER x 会使%d
忽略使用4
和2
分配给o
的前两个空格,然后scanf将忽略两个ENTERS并在到达输入缓冲区中的x
时停止。
你只想
if (scanf("%d", &o) != 1) /* error */;