请具体描述你的问题
可能是你小数反转写错了,可以发下代码吗
by Ivan422 @ 2024-02-12 07:44:14
@[Ivan422](/user/662425) ```c
#include<stdio.h>
#include<string.h>
int main()
{
char str1[30] = { 0 };
char str2[30] = { 0 };
int k1 = 0;
int k2 = 0;
int k3 = 0;
int flag1 = 0;
int flag2 = 0;
int flag3 = 0;
scanf("%s", str1);
for (int i = 0; i < strlen(str1); i++)
{
if (str1[i] == '.' || str1[i] == '/')
{
flag1 = 1;
k1 = i-1;
k2 = strlen(str1)-1;
for (int j = 0; j < i; j++)
{
str2[j] = str1[k1--];
}
for (int j = 0; j < i; j++)
{
if (str2[j] != '0')
{
flag2 = 1;
}
if (flag2)
{
printf("%c", str2[j]);
}
}
if (!flag2)
{
printf("0");
}
printf("%c", str1[i]);
for (int m = i + 1; m < strlen(str1); m++)
{
str2[m] = str1[k2--];
}
for (int m = strlen(str1)-1; m > i; m--)
{
if (str2[m] != '0')
{
flag3 = 1;
}
if (flag3)
{
for (int j = i + 1; j <= m; j++)
{
printf("%c", str2[j]);
}
break;
}
}
if (!flag3)
{
printf("0");
}
}
if (str1[i] == '%')
{
flag1 = 1;
k1 = i - 1;
str2[i] = str1[i];
for (int j = 0; j < i; j++)
{
str2[j] = str1[k1--];
}
for (int m = 0; m < strlen(str1); m++)
{
if (str2[m] != '0'||strlen(str1)==2)
{
flag2 = 1;
}
if (flag2)
{
printf("%c", str2[m]);
}
}
}
}
if (!flag1)
{
for (int i = strlen(str1) - 1; i >= 0; i--)
{
if (str1[i] != '0')
{
flag2 = 1;
}
if (flag2)
{
printf("%c", str1[i]);
}
}
if (!flag2)
{
printf("0");
}
}
return 0;
}
```
by imknight @ 2024-02-12 12:47:59
@[imknight](/user/1120222)
你这好像没有套到代码块里(
我先看看吧
by Ivan422 @ 2024-02-12 13:00:04