c语言scanf函数要求输入整数,但输入的是小数如何检测出来
scanf("%lld",&n);if(!(n>0&&n<1e16))
printf("error,please input (0<n<10^16)\n");
#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编辑过]