#include<stdio.h>
#include<string.h>
char s[25];
int l;
void swap1(void) {
int i;
if (strcmp(s, "0") == 0)
printf("0");
else {
for (i = l - 1; i >= 0; i--)
if (s[i] != '0')
break;
for (; i >= 0; i--)
printf("%c", s[i]);
}
}
void swap2(int n) {
int i, m;
if (s[0] == '0')
printf("0");
else {
for (i = n - 1; i >= 0; i--)
if (s[i] != '0')
break;
for (; i >= 0; i--)
printf("%c", s[i]);
}
printf(".");
for (i = n + 1; i < l - 1; i++)
if (s[i] != '0')
break;
m = i;
for (i = l - 1; i >= m; i--)
printf("%c", s[i]);
}
void swap3(int n) {
int i;
if (s[0] == '0')
printf("0");
else {
for (i = n - 1; i >= 0; i--)
if (s[i] != '0')
break;
for (; i >= 0; i--)
printf("%c", s[i]);
}
printf("/");
for (i = l - 1; i >n; i--)
if (s[i] != '0')
break;
for (; i >n; i--)
printf("%c", s[i]);
}
void swap4(void) {
int i;
if (strcmp(s, "0%") == 0)
printf("0%%");
else {
for (i = l - 2; i >= 0; i--)
if (s[i] != '0')
break;
for (; i >= 0; i--)
printf("%c", s[i]);
printf("%%");
}
}
int main(void) {
int i, j;
scanf("%s", s);
l = strlen(s);
for (i = 0; i < l; i++)
switch (s[i]) {
case('.'):swap2(i); return(0);
case('/'):swap3(i); return(0);
case('%'):swap4(); return(0);
default:;
}
swap1();
return(0);
}
洛谷P1553 数字反转(升级版)经典解法
最新推荐文章于 2024-05-26 16:32:45 发布