赞
踩
n = strlen(a);
void reverse(char a[],int n)
{
for(int i=0;i<n/2;i++){
swap(&a[i],&a[n-i-1])
}
}
void reverse(char a[],int l,int r)
{
int m=(l+r)/2,k=0;
for(int i=l;i<m;i++){
swap(&a[i],&a[r+l-i-1]);
}
}
int reverse(char a[],int l,int r)
{
int m=(l+r)/2,k=0;
for(int i=l;i<m;i++){
swap(&a[i],&a[r+l-i-1]);
}
while(a[l+k]=='0')k++;
if(l+k==r) printf("0"); // 如果全是0,那结果就是0
else
for(int i=l+k;i<r;i++)
printf("%c",a[i]);
}
int reverse_small(char a[],int l,int r) // 反转小数点后的数字
{
int m=(l+r)/2,k=0;
for(int i=l;i<m;i++){
swap(&a[i],&a[r+l-i-1]);
}
while(a[r-k-1]=='0')k++;
if(r-k==l)printf("0");
else
for(int i=l;i<r-k;i++)
printf("%c",a[i]);
}
#include <stdio.h> #include <string.h> void swap(char *a,char *b) { char c=*a; *a=*b; *b=c; } int reverse(char a[],int l,int r) { int m=(l+r)/2,k=0; for(int i=l;i<m;i++){ swap(&a[i],&a[r+l-i-1]); } while(a[l+k]=='0')k++; if(l+k==r)printf("0"); else for(int i=l+k;i<r;i++) printf("%c",a[i]); } int reverse_small(char a[],int l,int r) // 反转小数点后的数字 { int m=(l+r)/2,k=0; for(int i=l;i<m;i++){ swap(&a[i],&a[r+l-i-1]); } while(a[r-k-1]=='0')k++; if(r-k==l)printf("0"); else for(int i=l;i<r-k;i++) printf("%c",a[i]); } int main() { char a[100]={}; scanf("%s",a); int n=strlen(a); for(int i=0;i<n;i++){ if(a[i]=='.'){ reverse(a,0,i); printf("."); reverse_small(a,i+1,n); break; } if(a[i]=='/'){ reverse(a,0,i); printf("/"); reverse(a,i+1,n); break; } if(a[i]=='%'){ reverse(a,0,i); printf("%%"); break; } if(i==n-1) reverse(a,0,n); } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。