C语言中如何判断输入的数是否为整数?
解决时间 2021-02-01 19:25
- 提问者网友:欺烟
- 2021-01-31 22:05
#include "stdio.h"
#define N 4
main()
{
int a[N],i,j,t,*p;
printf("请输入%d个任意整数:\n",N);
p=a;
for(i=0;i {
scanf("%d",(p+i));
if((p+i)-(int)(p+i)==0)
printf("输入错误!");
}
for(i=0;i {
for(j=0;j {
if(*(p+j+1)<*(p+j))
{
t=*(p+j+1);
*(p+j+1)=*(p+j);
*(p+j)=t;
}
}
}
printf("升序排列后的数为:\n");
for(i=0;i {
printf("%5d",*(p+i));
}
}
这个SCANF后面的if为什么起不到判断作用?
最佳答案
- 五星知识达人网友:街头电车
- 2021-01-31 23:18
#include
void main (void)
{
float a;
cin>>a;
if(a/1>0)
{
cout<<"浮点型"<
}else
{
cout<<"整数型"<
}
}
全部回答
- 1楼网友:未来江山和你
- 2021-02-01 02:44
因为你定义的指针类型是int类型,所以你输入非整数的值,自动转换成整形
把指针声明为float or double
- 2楼网友:躲不过心动
- 2021-02-01 02:03
若n=n*n,n,n均为正整数,则n为完全平方数
c语言中,include
- 3楼网友:第幾種人
- 2021-02-01 01:28
这不是scanf后面if的问题,你的逻辑思路有问题,算法也不对,再整整吧
- 4楼网友:举杯邀酒敬孤独
- 2021-02-01 00:47
scanf("%d",(p+i));
if((p+i)-(int)(p+i)==0)
printf("输入错误!");
改成下面的!
if (scanf("%d",(p+i)) != 1)
printf("输入错误!");
以%d作参数时, scanf本身就对输入进行检查,如果成功就说明你输入的整数
- 5楼网友:人類模型
- 2021-02-01 00:40
给你改了一下,如下,其中错误已经改了
#include "stdio.h"
#define N 4
main()
{
int a[N],i,j,t,*p;
printf("请输入%d个任意整数:\n",N);
p=a;
for(i=0;i
我要举报
大家都在看
推荐资讯