哪里有问题
查看原帖
哪里有问题
267117
luoyouwei楼主2022/9/15 16:44
#include<iostream>
using namespace std;
double bs(double t,double n)
{
	double a,d,h,i,j,k;
	int b,c,e,f,g;
	a=t/n;
	c=i=1000*a;
	h=c;
	b=10000*a-10*c;
	d=h/1000;
	e=j=100*a;
	f=10*a;
	k= d+0.001;
	g=a;
	//cout<<a<<" "<<b<<" "<<c<<" "<<d<<" "<<e<<" "<<f<<" "<<g<<" "<<h<<" "<<i<<endl;
	if(b>4&&(c-10*e)!=9)//b表示原t/n的结果的小数点后第四位数字 
	{
		cout<< d+0.001;
		cout<<"一"; //这条肯定对; 
	}
	else if((c-10*e)==9)//第三位为9 
	{
		double A,B,C,Y;
		int E,F,G,y;
		E=A=k*10;
		B=100*k-10*E;
		//G=B;//G是第二位 
		F=k;
		y=Y=10*k-10*F;//y是第一位
		//cout<<A<<" "<<E<<" "<<B<<" "<<G<<endl; 
		if(B!=0)//if(G!=0)
		{
			cout<<k<<"0";
			//cout<<"一一" ;
		}
		else if(y!=0)
		{
			cout<<k<<"00";
			//cout <<"一二";
		}
		else
		{
			cout<<k<<".000" ;
		//	cout<<"一三"; 
		}
	}
	else if(b>0&&(c-10*e)!=0)
	{
		cout<< d;
		//cout<<"二"; 
	}
	else if((c-10*e)!=0)//第三位不等于0 
	{
		cout<< h/1000;
	//	cout<<"三";
	}
	else if(e-10*f!=0)//第二不等于0 
	{
		cout<<h/1000<<"0";
	//	cout<<"四"; 
	}
	else if(f-10*g!=0)//第一 
	{
		cout<<h/1000<<"00";
	//	cout<<"五"; 
	}
	else
	{
		cout<<h/1000<<".000";
	//	cout<<"六"; 
	}
	return 0;
}
int main()
{
	int n=7;
	double t=1;
//	while(t<7000)
//	{while(n<7000){
	cin>>t>>n;
	//cout<<t<<" "<<n<<" ";
	bs(t,n);
	cout<<endl;//n++;//}//<<2*n;
	return 0;                                                                                                               
}
2022/9/15 16:44
加载中...