![](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