c语言scanf函数要求输入整数,但输入的是小数如何检测出来
scanf("%lld",&n);if(!(n>0&&n<1e16))
printf("error,please input (0<n<10^16)\n");
2017-10-14 17:10
2017-10-15 07:52
2017-10-15 13:19
程序代码:#include<stdio.h>
#include<math.h>
int main()
{
long long int n=0;
int m=0,i=0,flag=1;
char a[20];
scanf("%s",a);
for(i=0;i<20&&a[i]!='\0';i++)
{
if(!(a[i]>='0'&&a[i]<='9'||a[i]=='-'))
{
flag=0;
break;
}
m++;
}
if(flag)
{
for(i=0;i<m;i++)
{
n=n+(a[i]-48)*pow(10,(m-i));
n/=10;
if(a[i]=='-')
printf("error!please input (0<n<10^16)\n");break;
if(!(n>0&&n<1e16))
printf("error!please input (0<n<10^16)\n");
}
}
else
printf("错误,不是整数!\n");
return 0;
}[此贴子已经被作者于2017-10-15 16:18编辑过]
2017-10-15 14:38
2017-10-15 16:21