bjfu1069格式化数字

来源:互联网 发布:日期提醒软件 编辑:程序博客网 时间:2024/06/07 01:26

格式化数字

时间限制(C/C++):1000MS/3000MS          运行内存限制:65536KByte
总提交:352            测试通过:112

描述

 给你一个数字,请去掉多余的前导零和后继零(如果小数点多余,也要去掉),将它格式化成常规的数字格式。如0001000.0100000应该格式化为1000.01。

输入

 输入包含多组测试样例,每组数据包含一个数字(不超过1000位),每个数字占一行。

输出

 对于每组输入数据,请输出该数字的常规格式,每组输出占一行。

样例输入

0001000.0100000010.000

样例输出

1000.0110

提示

要充分考虑各种情况。

题目来源

ben


解题思路:不多说,考虑好所有情况

AC代码:

#include<stdio.h> #include<string.h> int main() {     char f[1005];     int len,flag1,flag2,i,j;     while(scanf("%s",f)!=EOF)     {         len=strlen(f);         flag1=flag2=0;         int start=0,end=len-1,mid=-1;         for(i=0;i<len;i++)         {             if(f[i]=='.')              {                 flag1=1;                 mid=i;             }             if(f[i]!='0')                  flag2=1;         }         if(flag2==0)          {             printf("0\n");             continue;         }         while(f[start]=='0')              start++;         if(flag1)              while(f[end]=='0')                  end--;         if(start==mid)             start--;         if(end==mid)              end--;         for(j=start;j<=end;j++)         {                 if(j==-1)                      printf("0");                 else                    printf("%c",f[j]);         }         printf("\n");     }     return 0; }

0 0
原创粉丝点击