猿问

输出格式问题

c++输出数值过大时自动转化成1.84756e+06形式着么办,,double类型;cout<<dec<<s<<endl;

题目:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3066

代码如下:

#include<iostream>

using namespace std;    //关于这里,且听下回分解

int main()

{

int t,i,j;

double n,m,s;

cin>>t;

for(i=0;i<t;i++)

{

s=1;

cin>>n>>m;

if(n>m-n)

{

for(j=1;j<=m;j++)

{

if(j>n)

s*=j;

cout<<s<<endl;

}

for(j=1;j<=n-m;j++)

s/=j;

}

else

{

for(j=1;j<=m;j++)

{

if(j>m-n)s*=j;

cout<<s<<endl;

}

for(j=1;j<n;j++)

s/=j;

}

cout<<dec<<s<<endl;

}

return 0;

}


慕仰7464091
浏览 1011回答 1
1回答

慕仰7464091

用c我已经ac了,代码如下:#include <stdio.h>int main(int argc, char *argv[]){ double t,s,z,n,m,b; register int i,j; scanf("%lf",&t); for(i=0;i<t;i++) { scanf("%lf%lf",&n,&m); if(n>m) { z=n; n=m; m=z; } s=1; if(n>m-n) { for(j=1;j<=m;j++) if(j>n)s*=j; for(j=1;j<=m-n;j++) s/=j; } else { for(j=1;j<=m;j++) if(j>m-n)s*=j; for(j=1;j<=n;j++) s/=j; } printf("%.0f\n",s); } return 0;}
随时随地看视频慕课网APP
我要回答