为什么RE了有大佬知道吗!!!
查看原帖
为什么RE了有大佬知道吗!!!
1148832
LabmemNo_012LzTopic楼主2024/7/19 09:46
#include <stdio.h>
#include <string.h>

void fz(char* a, int x, int y)
{
    int temp, n;
    if ((x + y) / 2 == 0)n = (x + y) / 2;
    else n = (x + y) / 2 + 1;
    for (int i = x; i < n; i++)
    {
        temp = a[i];
        a[i] = a[x + y - i];
        a[x + y - i] = temp;
    }
    return;
}

void dy(char* a, int x, int y)
{
    int f = 1, sum = 0;
    for (int i = x; i <= y; i++)
    {
        if (f)
        {
            if (a[i] >= '1' && a[i] <= '9')
            {
                printf("%c", a[i]);
                sum++;
                f = 0;
            }
            continue;
        }
        printf("%c", a[i]);
        sum++;
    }
    if (sum == 0)printf("0");
    return;
}

int main()
{
    int sum = 0;
    char s[30], c;
    while ((c = getchar()) != '\n')
    {
        s[sum] = c;
        sum++;
        if (c >= '1' && c <= '9')continue;
        if (c == '.')
        {
            fz(s, 0, sum - 2);
            dy(s, 0, sum - 2);
            printf(".");
            int k = sum;
            while ((c = getchar()) != '\n')
            {
                s[sum] = c;
                sum++;
            }
            fz(s, k, sum - 1);
            int ans = 0;
            for (int i = k; i <= sum - 1; i++)
            {
                if (s[i] == '0')
                {
                    for (int j = i; j <= sum - 1; j++)
                    {
                        if (s[j] >= '1' && s[j] <= '9')
                        {
                            int z = j - i;
                            while (z--)
                            {
                                printf("0");
                            }
                            printf("%c", s[j]);
                            i = j;
                            ans++;
                            break;
                        }
                    }
                }
                else
                {
                    printf("%c", s[i]);
                    ans++;
                }
            }
            if (ans == 0)printf("0");
            return 0;
        }
        else if (c == '/')
        {
            fz(s, 0, sum - 2);
            dy(s, 0, sum - 2);
            printf("/");
            int k = sum;
            while ((c = getchar()) != '\n')
            {
                s[sum] = c;
                sum++;
            }
            fz(s, k, sum - 1);
            dy(s, k, sum - 1);
            return 0;
        }
        else if (c == '%')
        {
            fz(s, 0, sum - 2);
            dy(s, 0, sum - 1);
            printf("%");
            return 0;
        }
    }
    s[sum] = '\0';
    fz(s, 0, sum - 1);
    dy(s, 0, sum - 1);
    return 0;
}
2024/7/19 09:46
加载中...