首页
社区
课程
招聘
[旧帖] [求助]不好意思的问下,getchar不是获取字符嘛,怎么浮点型数字啊? 0.00雪花
发表于: 2009-3-20 12:25 4160

[旧帖] [求助]不好意思的问下,getchar不是获取字符嘛,怎么浮点型数字啊? 0.00雪花

2009-3-20 12:25
4160
#include<stdio.h>
void main()
{
int label;
char c;
  printf("\nPlase input a number:");
  c=getchar();
  while(c!='\n')
   {
    if(c=='.')label=1;
    c=getchar();/*但是输入不带点,也没有循环啊,难道是我搞错了*/
   }
  if(label==1) printf("\nfloat");
  else printf("\nnint");
  getch();
}
输入的是12.000,结果是float,而且我试着输入abd2.也是输出float,我狂晕!
各位大侠,虽然这个问题和简单,但是希望大侠们能够不吝赐教!

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (9)
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
大侠们,我是小菜,还不能登大雅之堂,问题过于简单,别见怪!
2009-3-20 12:27
0
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
顺便问下Ctrl+z为什么可以让while(scanf("%d",&a[i])!=EOF)跳出循环?
2009-3-20 12:30
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你的代码里的意思就是如果有“.”的话就确认是浮点数
如果没有的话就是整形
那是你代码里对输入英文的情况没有进行判断啊。
2009-3-20 13:11
0
雪    币: 8201
活跃值: (2701)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
ctrl+z早都设置好了
2009-3-20 13:11
0
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
这个是我在书上看到的,就是没有搞懂,哎,不知道为什么会这样,谢谢你们,我再看看!
2009-3-21 09:17
0
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
7
while(c!='\n')
   {
    if(c=='.')label=1;
    c=getchar();
   }
我只是觉得这里会循环要求输入,但是没有。
2009-3-21 09:37
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
这个就是说如果有“.”的话就把LABEL设置成1
然后如果LABEL是1的话就认为是浮点数嘛。
2009-3-21 14:13
0
雪    币: 242
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
fck
9
你的程序,跟你描述的很符合,,,有点就输出float没点就输出int
2009-3-21 15:24
0
雪    币: 194
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
10
有'.'我知道怎么分析,就是不知道为什么没有'.'不会出现循环?
2009-3-21 16:58
0
游客
登录 | 注册 方可回帖
返回
//