题目链接 https://www.luogu.org/problemnew/show/P1553
水题却做了很久。忽略了多个0的情况
按照题意:
整数反转:先存成字符串,然后从末尾滤0,然后向前输出
如果滤完s[0]还没有结束,就输出0。
小数反转:先存成字符串,然后从头部滤0,然后从末尾向前输出
如果滤完s[strlen(s)-1]还没有结束,就输出0。
#include
#include
void printn(char *s)//反转整数并打印
{
int j=strlen(s)-1;
while (s[j]=='0')
{
j--;
if (j<0)
{
printf("0");
return;
}
}
while (j>=0)
{
printf("%c",s[j]);
j--;
}
}
void printr(char *s)//反转小数并打印
{
int j=0;
while (s[j]=='0')
{
j++;
if (j==strlen(s))
{
printf("0");
return;
}
}
for (int k=strlen(s)-1;k>=j;k--)
{
printf("%c",s[k]);
}
}
int main()
{
char b[13],a[24];
char tmp;
int i=0;
while ( (tmp=getchar())<58 && tmp>47 )
a[i++]=tmp;
a[i]=0;
printn(a);
if ( tmp=='.')
{
scanf("%s",b);
printf(".");
printr(b);
}
else if ( tmp=='/' )
{
scanf("%s",b);
printf("/");
printn(b);
}
else if ( tmp=='%' )
printf("%%");
return 0;
}