代码如下 希望大佬指点 我下了#6的数据 我的输出明明和它一样啊 不知道为什么wa
#include <iostream>
#include <string>
#include <algorithm>
#include <cmath>
using namespace std;
long long stringtointreverse(string s)
{
long long n=0;
for (int i=s.length()-1;i>=0;i--)
{
n=n*10+s[i]-'0';
}
return n;
}
int main()
{
string s;
cin >> s;
int flag=1;
int idx2=0;
int idx3=0;
int idx4=0;
for (int i=0;i<s.length();i++)
{
if (s[i]=='.')
{
flag=2;
idx2=i;
break;
}
else if (s[i]=='/')
{
flag=3;
idx3=i;
break;
}
else if (s[i]=='%')
{
flag=4;
idx4=i;
break;
}
}
switch (flag)
{
case 1:{
cout << stringtointreverse(s) << endl;
break;
}
case 2:{
string sub1=s.substr(0,idx2);
string sub2=s.substr(idx2+1,s.length()-1-idx2);
int a=stringtointreverse(sub1);
int b=stringtointreverse(sub2);
long double c=a+b*pow(0.1,sub2.length());
if (b!=0)
{
cout << c << endl;
}
else cout << a << ".0" << endl;
break;
}
case 3:{
string sub1=s.substr(0,idx3);
string sub2=s.substr(idx3+1,s.length()-1-idx3);
int a=stringtointreverse(sub1);
int b=stringtointreverse(sub2);
cout << a << '/' << b << endl;
break;
}
case 4:{
string sub1=s.substr(0,idx4);
int a=stringtointreverse(sub1);
cout << a << '%' << endl;
break;
}
}
return 0;
}