@[jkluio1](/user/1077407) 输入0.11时会输出.11
代码看不懂,太乱了
------------
_~~(其实就是想睡觉)~~_
头文件没有<string.h>我都不知道你咋过得编译
第五行这个#if 1有什么特别之处吗,平白增加错误
by Fish_Love_Water @ 2024-03-23 21:39:02
@[Fish_Love_Water](/user/1109550) 但是我有string呀,然后那个if1是我分段的,忘记删了哈哈,方便留个联系方式探讨下嘛,现在90了,然后小说开头也能过,但是还是不能ac
by jkluio1 @ 2024-03-23 21:48:33
```
#include<iostream>
#include<cstring>
#include<cmath>
#include<cstdio>
#include<cstdlib>
#include<string>
#include<sstream>
#include<vector>
#pragma warning (disable:4996)
using namespace std;
int main()
{
char s[100];
vector<char>sp1, sp2;
int flag1=0,flag2=0,i = 0, j = 0, k = 0;
cin >> s;
if (s[0] == '0')
{
cout << '0';
if (s[1] == '%')
cout << '%';
if (s[1] == '.')
{
if (strlen(s) == 3)
{
cout << ".0";
return 0;
}
cout << '.';
int t = strlen(s)-1;
for (i=t; i > 1; i--)
sp1.push_back(s[i]);
int temp = sp1.size() - 1;
while (sp1[temp] == '0')
{
sp1.pop_back();
temp--;
}
for (i = 0;i <sp1.size(); i++)
cout << sp1[i];
}
return 0;
}
int t=strlen(s);
for (i=t-1;i>=0;i--)
{
if (s[i] == '%')
continue;
if (s[i] < '0' || s[i] >'9')
break;
sp1.push_back(s[i]);
}
if(s[t-1]=='%')
sp1.push_back(s[t-1]);
if (i==-1)
{
for (j = 0; j <sp1.size(); j++)
{
if (sp1[0] == '0'&&flag1==0)
while (sp1[j]== '0')
{
j++; flag1= 1;
}
cout << sp1[j];
}
return 0;
}//int ,%
for (j = i - 1; j >= 0; j--)
sp2.push_back(s[j]);
sp2.push_back(s[i]);
for (k = 0; k < sp2.size(); k++)//分子,浮点数整数部分;
{
if (sp2[0] == '0' && flag1 == 0)
{
while (sp2[k] == '0')
{
k++;
flag1 = 1;
}
}
cout << sp2[k];
}
if (s[i] == '/')//分母
{
for (k = 0; k < sp1.size(); k++)
{
if (sp1[0] == '0' && flag2 == 0)
{
while (sp1[k] == '0')
k++;
flag2 = 1;
}
cout << sp1[k];
}
}
else
{
int t = sp1.size() - 1;
if (sp1.size() == 1)
{
cout << 0;
return 0;
}
if (sp1[t]== '0'&&flag2==0)
while (sp1[t] == '0')
{
sp1.pop_back();
flag2 = 1;
t--;
}
for (k = 0; k < sp1.size(); k++)
cout << sp1[k];
}
}
```
@[Fish_Love_Water](/user/1109550)
这是源码,你说的那个测试点过了QAQ
by jkluio1 @ 2024-03-23 21:50:29
@[jkluio1](/user/1077407) ?洛谷就行了吧
by Fish_Love_Water @ 2024-03-23 22:06:43
@[jkluio1](/user/1077407) 其实,你有没想过这个0/114514呢他其实不等于0,他等于0/415411
~~就很奇葩~~
by Fish_Love_Water @ 2024-03-23 22:16:04
@[jkluio1](/user/1077407) 我自己又写了一遍
```cpp
#include<bits/stdc++.h>
using namespace std;
char s[110];
int aa=1,b,c,f,x;
int main(){
//判断是整数或百分数(aa==1) 小数或分数(bb==1)
while(cin>>s[++f]) if(s[f]=='.'||s[f]=='/') aa=0,b=f;
//转换整数 、百分数
if(aa){
if(s[f-1]=='%') c++;
for(int i=f-1;i>0;i--) if(s[i]!='0'&&s[i]!='%'||x&&s[i]!='%'||f-1==1||(c&&f-1==2)) x=1,cout<<s[i];
if(c) cout<<"%";
}
//转换小数、分数
else{
for(int i=b-1;i>0;i--) if(s[i]!='0'||b-1==1||x) x=1,cout<<s[i];
cout<<s[b];
int i=b+1;
while(s[i]=='0'&&f-1!=b+1) i++;
for(int k=f-1;k>=i;k--) if(s[i]!='0'||f-1==b+1||x) x=1,cout<<s[k];
}
return 0;
}
```
差不多这样,还得改改,输入99/09时会输出99/9,这显然是错的,靠你了
by Fish_Love_Water @ 2024-03-23 23:31:45
@[Fish_Love_Water](/user/1109550)
这这这,这不合理
QAQ
by jkluio1 @ 2024-03-24 10:17:49