P1553数字反转(升级版)为什么只有55分
查看原帖
P1553数字反转(升级版)为什么只有55分
1260401
Zwbrother楼主2024/3/3 15:57

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;
}
2024/3/3 15:57
加载中...