求大佬救救,运行第六个测试数据自己电脑上是对的但是过不了洛谷测试
查看原帖
求大佬救救,运行第六个测试数据自己电脑上是对的但是过不了洛谷测试
1004193
Xing_Kong_C楼主2023/10/22 14:07

问题

第六个测试点给我报错“Wrong Answer.wrong answer On line 1 column 9, read (ASCII 0), expected ..“ 测试数据六是:"84754765.322414"。 但是我自己运行出来的数据是有‘.’的。 剩下的错误点都是说我的'.''/'''%'这些是ascii 0

shi山代码如下

代码解释: 先判断了属于整数,分数,小数,百分数中的哪一种,再在if语句中找出那类,进行处理。

#include <iostream>
#include<string>
using namespace std;
int main()
{
 string s,s1(25,'\0'),s2(25,'\0'),ss(25,'\0'),ss1(25,'\0');
 cin>>s;
 int n=s.length(),type=1,z;

 for(int i=0;i<n;i++)
 {
     if(s[i]=='.')
     {
         type=2;
         z=i;
     }
     else if(s[i]=='/') {
         z=i;  type = 3;
     }else if(s[i]=='%')
         type=4;
 }

 if(type==1)
 {
if(s=="0")
{cout<<0;
return 0;}
     for(int i=0;i<n;i++)
     {

         s1[i]=s[n-i-1];
     }
     while(s1[0]=='0')
     {
         s1.erase(0,1);
     }
     cout<<s1;
     return 0;
 }
 else if(type==2)
 {
     s1=s.substr(0,z);
     s2=s.substr(z+1,n-1-z);
     for(int i=0;i<z;i++)
     {
         ss[z-i-1]=s1[i];
     }
     while(ss[0]=='0')
     {
         ss.erase(0,1);
     }
     if(s1=="0")
     {cout<<0<<'.';
     }
     else
     {
         ss+='.';
         }
     for(int i=0;i<n-z-1;i++)
     {
         ss1[n-z-i-2]=s2[i];
     }
     if(s2=="0")
     {
         cout<<0;
         return 0;
     }
     int l=n-z-2;
     while(ss1[l]=='0')
     {
         ss1.erase(l--,1);
     }
     ss+=ss1;
     cout<<ss;
 }
 else if(type==3)
 {
     s1=s.substr(0,z);
     s2=s.substr(z+1,n-1-z);
     for(int i=0;i<z;i++)
     {
         ss[z-i-1]=s1[i];
     }
     while(ss[0]=='0')
     {
         ss.erase(0,1);
     }if(s1=="0")
         ss="0";
     ss+='/';
     for(int i=0;i<n-z-1;i++)
     {
         ss1[n-z-i-2]=s2[i];
     }
     while(ss1[0]=='0')
     {
         ss1.erase(0,1);
     }
     ss+=ss1;
     cout<<ss;
 }
 else if(type==4) {
     if(s[0]=='0')
     {
         cout<<"0%";
         return 0;
     }
     s.erase(n - 1, 1);
     for(int i=0;i<n-1;i++)
     {
         s1[i]=s[n-i-2];
     }
     while(s1[0]=='0')
     {
         s1.erase(0,1);
     }
     s1+='%';
     cout<<s1;
 }
 return 0;
}

求求大佬们了,娃忙活了三小时了没解决掉orz。

2023/10/22 14:07
加载中...