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的是什么值,以及你的代码走的什么逻辑?