前面几个几乎全是tle,求助
查看原帖
前面几个几乎全是tle,求助
1588056
thereia楼主2025/2/6 18:27

代码如下

#include <stdio.h>
#include <string.h>
#include <math.h>
int main()
{
 char a[100];
 gets(a);
 int point1=0,point2=0,point3=0;
 for(int i=0;i<strlen(a);i++)
 {
    if(a[i]=='/') point1=i;
    if(a[i]=='.') point2=i;
    if(a[i]=='%') point3=1;
 }   
 if(point1)
 {
    int jud1=0,jud2=0;
    if(point1==1&&a[0]=='0') printf("0");
    else for(int i=point1-1;i>=0;i--)
    {
        if(jud1==0&&a[i]=='0') continue;
        jud1++;
        printf("%c",a[i]);
    }
    printf("/");
    if((strlen(a)-point1-1)==1&&a[strlen(a)-1]=='0') printf("0");
    else for(int i=strlen(a)-point3-1;i>point1;i--)
    {
        if(jud2==0&&a[i]=='0') continue;
        jud2++;
        printf("%c",a[i]);
    }
 }
else if(point2)
 {
    int jud1=0,jud2=0;
    if(point2==1&&a[0]=='0') printf("0");
    else for(int i=point2-1;i>=0;i--)
    {
        if(jud1==0&&a[i]=='0') continue;
        jud1++;
        printf("%c",a[i]);
    }
    printf(".");
    if((strlen(a)-point2-1)==1&&a[strlen(a)-1]=='0') printf("0");
    else {
        int len=0;
        while(a[point2+len+1]=='0') len++;
        for(int i=strlen(a)-point3-1;i>point2+len;i--)
        {
            if(jud2==0&&a[i]=='0') continue;
            jud2++;
            printf("%c",a[i]);
        }
     }
 }
 else
 {
    int jud=0;
    for(int i=strlen(a)-point3-1;i>=0;i--)
    {
        if(jud==0&&a[i]=='0') continue;
        jud++;
        printf("%c",a[i]);
    }
 }
if(point3) printf("%%");
    return 0;
}
2025/2/6 18:27
加载中...