 
        c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环
int main(void)
{
 SEQLIST a;
 int b;//用于保存输入选择的数字
 a.len=0;
 while(1)
 {
  printf("*******************\n");
  printf("      0.创建       \n");
  printf("      1.显示       \n");
  printf("      2.插入       \n");
  printf("      3.删除       \n");
  printf("      4.定位       \n");
  printf("      5.退出       \n");
  printf("*******************\n");
  do{
   printf("请输入以上的整数,选择想要的操作\n");
   scanf("%d",&b);
   if(b<0||b>5)
   {
    printf("你所输入的操作错误,只能输入0到5之间的整数!\n");
   }
  }while(b<0||b>5);
  switch(b)
  {
      case 0: create(&a); break;
   case 1: display(&a); break;
   case 2: insert(&a); break;
   case 3:  
    int b;
    if(a.len==0){
     printf("该线性表为空表,请先创建\n");
     break;}
    do{
     printf("请输入要删除第几个数据\n");
     scanf("%d",&b);
     if(a.len<b)
      printf("输入数据错误\n");
    }while(a.len<b);
    mydelete(&a,b);break;
   case 4: search(&a); break;
   case 5: exit(0);break;
  }
  
  }
 return 0;
 }
scanf("%d",&b); 不会只取整数部分吗?
但是上面的代码中,当输入整数的时候代码就能正常运行,输入小数的时候就死循环了。求解!
@Gangers: b 等于多少的时候出现死循环?
@Launcher: b等于非数字的时候
@Gangers: 能不能劳你大驾,自己定个断点,观察下输入非数字后,你的b的是什么值,以及你的代码走的什么逻辑?