各位大佬帮忙看看吧!!测试点9和10一直WA
查看原帖
各位大佬帮忙看看吧!!测试点9和10一直WA
811062
Easter1995楼主2023/1/28 21:28

测试点9和10一直WA

看了好久感觉没啥问题哇 这是代码:

#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

2023/1/28 21:28
加载中...