不知道哪里错了啊
  • 板块题目总版
  • 楼主no2lxs
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/9/18 22:31
  • 上次更新2023/10/27 10:41:08
查看原帖
不知道哪里错了啊
677850
no2lxs楼主2022/9/18 22:31
#include<bits/stdc++.h> 
using namespace std;
long long n;
string num;
int main()
{
	cin>>n;
	while(n--)
	{
		cin>>num;
		if(num[0]=='-'&&num[1]=='0'&&num[2]!='.')
		{
				cout<<-1<<endl;
		}
		else if(num=="0")
		{
			cout<<'0'<<endl;
		}
		else if(num[0]=='0'&&num[1]!='.')
		{
				cout<<-1<<endl;
		}
		else if(num[0]=='.')
		{
			cout<<-1<<endl;
		}
		else if(num[0]=='-'&&num[1]=='.')
		{
			cout<<-1<<endl;
		}
		else
		{
			int fuhao=0,point=0,zero=0,zerocmp=0,pointkey=-1;
		for(int i=0;i<num.size();i++)
		{
			if(num[i]=='-')
			{
				fuhao++;
				if(i!=0)
				{
					cout<<-1<<endl;goto FLAG;
				}
			}
			if(num[i]=='.')
			{
				point++;pointkey=i;
			}
			if(fuhao>1)
			{
				cout<<-1<<endl;goto FLAG;
			}
			if(point >1)
			{
				cout<<-1<<endl;goto FLAG;
			}
			if(i>pointkey&&point!=0)
			{
				zerocmp++;
				if(num[i]=='0')
				{
					zero++;
				}
			}
			if(num[i]<'0'&&num[i]>'9'&&num[i-1]<'0'&&num[i-1]>'9')
			{
				cout<<-1<<endl;goto FLAG;
			}
		}
		if(zerocmp==zero&&zerocmp!=0)
		{
			cout<<-1<<endl;
		}
		else if(num[num.size() -1]=='0'&&point!=0)
		{
			cout<<-1<<endl;
		}
		else if(num[num.size() -1]=='.')
		{
			cout<<-1<<endl;
		}
		else
		{
			if(num[0]=='-')
			{
				for(int i=1;i<num.size() ;i++)
				{
					cout<<num[i];
				}
			}
			else
			{
				cout<<num;
			}
			cout<<endl;
		}
		FLAG:;
		}	
	}
  return 0;
}

有大佬帮忙看下吗

2022/9/18 22:31
加载中...