求助...40分

P1553 数字反转(升级版)

![](file:///C:/Users/Administrator/Desktop/%E4%B8%AD%E4%BC%A0/c/k.png)
by Xiang @ 2019-02-06 02:26:19


#include<iostream> #include<string> #include<cstring> #include<cstdio> #include<stdio.h> using namespace std; int main(){ string s; int i=0,p=0,q=0,k=0,t=0,r1=0,w1=0,r2=0,w2=0; cin>>s; if (s.find(".")==string::npos&&s.find("/")==string::npos&&s.find("%")==string::npos) {k=s.length()-1;while(s[k]=='0') k--; for(q=k;q>=0;q--) cout<<s[q]; return 0; } while(s[i]>='0'&&s[i]<='9') { p++; i++; } k=p-1; t=s.length()-1; for(r1=p+1;r1<=t;r1++) {if(s[r1]=='0') w1+=1;} for(r2=0;r2<=p-1;r2++) {if(s[r2]=='0') w2+=1;} if(s[i]=='%') {if (w2==p) {cout<<'0'<<'%'; return 0;} else {while(s[k]==0) {k--;} for(q=k;q>=0;q--) {cout<<s[q];} cout<<'%'; return 0; }} else if(s[i]='.'){ if (w2==p) {cout<<'0'<<'.';} else {while(s[k]=='0') {k--;} for(q=k;q>=0;q--) {cout<<s[q];}cout<<'.';} if (w1==t-p) {cout<<'0'; return 0;} else { while(s[t]=='0') {t--;} for(t=t;t>=p+1;t--) {cout<<s[t];} return 0; } } else if(s[i]='/'){if (w2==p) {cout<<'0'<<'/';} else {while(s[k]=='0') {k--;} for(q=k;q>=0;q--) {cout<<s[q];} cout<<'/'; while(s[t]=='0') {t--;} for(t=t;t>=p+1;t--) {cout<<s[t];}}} return 0; } 稍微改了下
by Xiang @ 2019-02-06 02:50:26


为什么/的输入 在输出时都变成了.
by Xiang @ 2019-02-06 02:52:11


我判断相等的时候只打了一个等号...抱歉各位
by Xiang @ 2019-02-06 02:56:16


#include<iostream> #include<string> #include<cstring> #include<cstdio> #include<stdio.h> using namespace std; int main(){ string s; int i=0,p=0,q=0,k=0,t=0,r1=0,w1=0,r2=0,w2=0; cin>>s; if (s.find(".")==string::npos&&s.find("/")==string::npos&&s.find("%")==string::npos)//纯数字 {k=s.length()-1;/*s[i]从s[0]开始算数 直到s.length()-1 后面都是0*/ while(s[k]=='0') k--; for(q=k;q>=0;q--) cout<<s[q]; return 0; } while(s[i]>='0'&&s[i]<='9') { p++; i++; } k=p-1; t=s.length()-1; for(r1=p+1;r1<=t;r1++) {if(s[r1]=='0') w1+=1;} for(r2=0;r2<=p-1;r2++) {if(s[r2]=='0') w2+=1;} if(s[i]=='%'){if (w2==p) {cout<<'0'<<'%'; return 0;} else {while(s[k]=='0') {k--;} for(q=k;q>=0;q--) {cout<<s[q];} cout<<'%'; return 0; }}//判断% else if(s[i]=='.'){ if (w2==p) {cout<<'0'<<'.';} else {while(s[k]=='0') {k--;} for(q=k;q>=0;q--) {cout<<s[q];}cout<<'.';} //判断. if (w1==t-p) {cout<<'0'; return 0;} else { while(s[t]=='0') {t--;} while(s[p+1]=='0'){p++;} for(t=t;t>=p+1;t--) {cout<<s[t];} return 0; } } else if(s[i]=='/'){if (w2==p) {cout<<'0'<<'/';} else {while(s[k]=='0') {k--;} for(q=k;q>=0;q--) {cout<<s[q];} cout<<'/';} while(s[t]=='0') {t--;} while(s[p+1]=='0'){p++;} for(t=t;t>=p+1;t--) {cout<<s[t];}} //判断/ return 0; } 唔...现在是95分..#16不过 求助
by Xiang @ 2019-02-06 03:14:17


过了 谢谢各位
by Xiang @ 2019-02-06 03:32:58


|