首页 新闻 搜索 专区 学院

c语言中,输入一个数字,怎么判断那个数字是整数还是实数,代码如下,输入实数后出现了死循环

0
[已关闭问题] 关闭于 2015-02-27 17:12

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;
 }

Gangers的主页 Gangers | 初学一级 | 园豆:173
提问于:2012-09-16 15:18
< >
分享
所有回答(1)
0

scanf("%d",&b); 不会只取整数部分吗?

Launcher | 园豆:45045 (高人七级) | 2012-09-17 10:56

但是上面的代码中,当输入整数的时候代码就能正常运行,输入小数的时候就死循环了。求解!

支持(0) 反对(0) Gangers | 园豆:173 (初学一级) | 2012-09-17 19:12

@Gangers: b 等于多少的时候出现死循环?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2012-09-18 09:03

@Launcher: b等于非数字的时候

支持(0) 反对(0) Gangers | 园豆:173 (初学一级) | 2012-12-30 19:07

@Gangers: 能不能劳你大驾,自己定个断点,观察下输入非数字后,你的b的是什么值,以及你的代码走的什么逻辑?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2013-01-04 09:16
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册