c语言 长整型如何判断用户输入的是整型数,如果不是则要求重复输入(用户的输入是不可预计的)

&pre name=&code& class=&cpp&&//用函数指针变量完成:输入两个整数,让用户选择函数,选择1输出较大的数,选择2输出较小的数
#include &stdio.h&
int max(int x,int y)
return (x&y)?x:y;
int min(int x,int y)
return (x&y)?y:x;
int main()
int (*p)(int,int);
int a,b,c,n;
printf(&请输入两个整数:&);
scanf(&%d%d&,&a,&b);
printf(&请输入操作数(1 or 2):&);
scanf(&%d&,&n);
else if(n==2)
c=(*p)(a,b);
printf(&a=%d,b=%d\n&,a,b);
printf(&max=%d\n&,c);
printf(&min=%d\n&,c);求教C语言,从键盘输入一个整型数据(int型),编写程序判断该整数共有几位,并输出包含各个数字的个数。求教C语言,从键盘输入一个整型数据(int型),编写程序判断-知识宝库
你可能对下面的信息感兴趣您现在的位置:>>
>>正文内容
C语言判断输入是否是整数
首先考虑可能的输入:&
非数字的字符。
带小数点的浮点数。
对于第一种情况,考虑到scanf函数的返回值是成功输入的数量,用if(scanf(&%d&,&a)==1)判断即可。但是可惜的是,如果输入的是浮点数,scanf依然认为你输入成功,并返回1。
以下提供两种解决方案:
一.输入浮点型,并于强制转换int型的结果比较是否相等:
代码如下:
int&IsInt(float&a) &
&&&&if((int)a==a) &
&&&&&&&&return&1; &
&&&&&&&&return&0; &
示例程序:
#include&&stdio.h& &
int&IsInt(float&a) &
&&&&if((int)a==a) &
&&&&&&&&return&1; &
&&&&&&&&return&0; &
int&main(int&argc,&char&*argv[]) &
&&&&float&a; &
&&&&while(1) &
&&&&&&&&scanf(&%f&,&a); &
&&&&&&&&fflush(stdin); &
&&&&&&&&if(IsInt(a)) &
&&&&&&&&&&&&printf(&It's&an&int\n&); &
&&&&&&&&else&
&&&&&&&&&&&&printf(&It's&not&an&int\n&); &
&&&&return&0; &
当然,IsInt返回值是1的话,要用(int)a强制转换成int型并赋给a。
二.输入字符串,逐字符比较
用字符串数组a[SIZE]接收输入,判断每个字符是否满足a[i]&=&0&&&a[i]&='9'条件,有一个字符不满足则不是int型。若是则用atoi函数转换成int型。

我要回帖

更多关于 c语言 长整型 的文章

 

随机推荐