Chinaunix首页 | 论坛 | 博客
  • 博客访问: 20931
  • 博文数量: 7
  • 博客积分: 260
  • 博客等级: 入伍新兵
  • 技术积分: 90
  • 用 户 组: 普通用户
  • 注册时间: 2012-05-01 14:57
文章分类

全部博文(7)

文章存档

2012年(7)

最近访客

分类: C/C++

2012-05-05 16:25:16

1002 林老师的作业

小强不喜欢C语言,可是又必须完成林老师的作业,所以非常苦恼,但又得常常编程到深夜。上次林老师又布置了一道作业:给你一个非负的双精度浮点数D,然后将D向下取整转化成一个整数ND的下取整就是把小数部分舍去,只留下整数部分。比如3.14的下取整就是3

但是现在他遇到了一个麻烦的问题,就是C语言中的双精度浮点数的表示范围是远远大于整型数的表示范围的。你能帮助小强解决这个问题吗?

输入

只有一个双精度浮点数DD用十进制小数表示,长度不大于300D一定为非负数。D有可能存在前导零,即会出现07.09的情况,此时应该输出7,也有可能去掉前导零,比如.009,此时应该输出0D也有可能为整数,如D=4,不包含小数点,此时应该输出4。除此之外,都是正常书写小数的习惯了。

输出

输出一个整数N,就是D的下取整。

 

#include"stdio.h"

int main()
{
 char c,ch;
 char a[500]={'\0'};
 int i;
 gets(a);
 i=0;
 c=a[i++];
 while(c=='0'){
  ch=c;
  c=a[i++];
 }
 if(c=='.')
  printf("0");
 else
  if(c=='\0'&&ch=='0')
   printf("0");
  else
   while(c!='.'&&c!='\0')
   {
    printf("%d",c-'0');
    c=a[i++];
   }
 return 0;
}

阅读(1008) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~