P1553数字反转(升级版)为什么这个代码只有55分啊,求大佬看看。 下载了一个数据6980358432985,在Dev c++上返回值没有错啊,为什么提交上算错了。
#include<stdio.h>
#include<string.h>
int main(){
char v[20]={};
gets(v);
int k=strlen(v);
int n=0;
for(int i=0;v[i]!='\0';i++){
if(v[i]=='.') {
int m,w;
char s[20]={};
char ss[20]={};
for(int j=0,h=i-1;j<=i,h>=0;j++,h--){
s[j]=v[h];
}
while(s[0]=='0'){
for(int q=0;s[q]!='\0';q++){
s[q]=s[q+1];
}
}
for(int j=0,h=k-1;j<k-i,h>i;j++,h--){
ss[j]=v[h];
}
//printf("%s\n",ss);
while(ss[0]=='0'){
for(int q=0;ss[q]!='\0';q++){
ss[q]=ss[q+1];
}
}
m=strlen(ss);
while(ss[m-1]=='0'){
ss[m-1]='\0';
m--;
}
w=strlen(s);
s[w]='.';
strcat(s,ss);
printf("%s",s);
}
if(v[i]=='/'){
int m,w;
char s[20]={};
char ss[20]={};
for(int j=0,h=i-1;j<=i,h>=0;j++,h--){
s[j]=v[h];
}
while(s[0]=='0'){
for(int q=0;s[q]!='\0';q++){
s[q]=s[q+1];
}
}
for(int j=0,h=k-1;j<k-i,h>i;j++,h--){
ss[j]=v[h];
}
printf("%s\n",ss);
while(ss[0]=='0'){
for(int q=0;ss[q]!='\0';q++){
ss[q]=ss[q+1];
}
}
m=strlen(ss);
while(ss[m-1]=='0'){
ss[m-1]='\0';
m--;
}
w=strlen(s);
s[w]='/';
strcat(s,ss);
printf("%s",s);
}
if(v[i]=='%'){
int m;
char s[20]={};
for(int j=0,h=i-1;j<=i,h>=0;j++,h--){
s[j]=v[h];
}
while(s[0]=='0'){
for(int q=0;s[q]!='\0';q++){
s[q]=s[q+1];
}
}
m=strlen(s);
s[m]='%';
printf("%s",s);
}
if(v[i]>='0'&&v[i]<='9') n++;
}
if(n==k){
int m;
char s[20]={};
for(int j=0,h=k-1;j<k,h>=0;j++,h--){
s[j]=v[h];
}
while(s[0]=='0'){
for(int q=0;s[q]!='\0';q++){
s[q]=s[q+1];
}
}
printf("%s",s);
}
return 0;
}