题目链接:点击打开链接
代码:
#include<stdio.h>
#include<algorithm>
using namespace std;
#include<bits/stdc++.h>
int main()
{
char a[200];
// memset(a,'0',sizeof(a));
while( scanf("%s",a)!=EOF)
{
int s=strlen(a);
int flag=0;
if(a[0]=='-')
flag=1;
int y=0;
for(int i=0; i<s; i++)
{
if(a[i]!='0'&&a[i]!='.'&&a[i]!='-')
{
y=1;
break;
}
}
if(!y)
{
if(flag)
printf("(0.00)\n");
else
printf("0.00\n");
continue;
}
int flag1=-1;
for(int i=flag; i<s; i++)
{
if(a[i]=='.')
flag1=i;
}
int biaoji=-1;
if(flag1 !=-1)
{
for(int i=flag; i<=flag1; i++)
{
if(a[i]!='0')
{
biaoji=i;
break;
}
a[i]='*';
}
// if((a[flag1+3]-'0')>=5)
// {
// if(a[flag+2]=='9')
// {
// a[flag+2]='0';
//
// }
// a[flag1+2]+=1;
// }
int q;
if(a[flag1+3]>='5')
{
for(int i=flag1+2; i>=biaoji; i--)
{
q=i;
if(a[i]=='.')
continue;
if(a[i]!='9')
{
a[i]+=1;
break;
}
else
a[i]='0';
}
}
// printf("%d %d\n",q,biaoji);
if(flag==1)
printf("(");
int qq=0;
if(q==biaoji)
{
printf("1");
qq=1;
}
else if(biaoji==flag1)
printf("0");
int r1=0;
if((flag1+qq-biaoji)%3==0)
r1=1;
for(int i=biaoji; i<flag1; i++)
{
if((!((flag1-i)%3)))
{
if(!r1)
printf(",");
r1=0;
}
printf("%c",a[i]);
}
for(int i=flag1; i<flag1+3; i++)
{
if(i>=s)
printf("0");
else
printf("%c",a[i]);
}
if(flag==1)
printf(")");
printf("\n");
}
else
{
for(int i=flag;; i++)
{
if(a[i]!='0')
{
biaoji=i;
break;
}
a[i]='*';
}
if(flag==1)
printf("(");
int r=0;
if((s-biaoji)%3==0)
r=1;
for(int i=biaoji; i<s; i++)
{
if(!((s-i)%3))
{
if(!r)
printf(",");
r=0;
}
printf("%c",a[i]);
}
printf(".00");
if(flag==1)
printf(")");
printf("\n");
}
}
return 0;
}
看讨论区的数据了,大二,加油!!!