看了好久感觉没啥问题哇 这是代码:
#include<stdio.h>
#include<string.h>
int main()
{
char number[25];//存输入的数据
int i,j,len1,len2;//len1是整个原始字符串长度,len2是符号位前的字符串长度
gets(number);
len1=strlen(number);
for(i=0;i<len1 && number[i]>='0'&&number[i]<='9';i++);//循环到符号位之前
len2=i;
i--;
if(len2==1&&number[i]=='0')//整数部分为0的情况
printf("%c",'0');
else
{
while(number[i]=='0')
i--;
for(j=i;j>=0;j--)
printf("%c",number[j]);
}
if(number[len2]=='%')
printf("%c",'%');
else if(number[len2]=='/'||number[len2]=='.')
{
printf("%c",number[len2]);
i=len2+1;
if(number[len2]=='.')
{
while(number[i]=='0')//小数,去掉末尾的0,但是保留开头的0
i++;
for(j=len1-1;j>=i;j--)
printf("%c",number[j]);
}
else if(number[len2]=='/')
{
len1-=1;
while(number[len1]=='0')//分数,保留末尾的0,但是去掉开头的0
len1--;
for(j=len1;j>=i;j--)
printf("%c",number[j]);
}
}
return 0;
}
这是我的测试数据:
输入:0/1900 输出:0/91
输入:0.00019 输出:0.91
这种特殊数据感觉都没问题哇!!QAQ