先说说楼主的问题,再说二楼的问题:
楼主的问题主要在于%.2e输出的困惑, %.2e --- 按指数方式输出小数点后保留两位,另外,楼主编译过程中,对%.2e输出不是很了解的时候为什么不用%lf输出进行验证,看看你的算法逻辑是否正确,能不能达到预想的目的,实现算法特定的功能,你的算法就是错的,可以变着用不同的数字进行验证,这一点,楼主并没有做
再谈谈二楼的问题,二楼的同志,你同样没有进行算法的正确性验证,即便你因为sum的类型,提出了用%.2lf输出,但你要注意,楼主的问题中要求用%.2e输出,你不够细心,同时,没有去探究楼主的逻辑是否正确,算法能否实现特定的功能,这一点上你不够严谨
程序代码:
#include "stdafx.h"
#include<stdlib.h>
#include<cstdio>
#include<cmath>
int main()
{
// long f=1; //整个过程这个变量用不到
double sum=1;
for(int i=1;i<=9;i++)
{
sum=sum*i; //建议楼主换一个变量名,用sum做变量名,不利于代码的可读性
}
printf("%.2e\n",sum);
printf("%lf",sum); //用来验证你的sum结果是否正确,验证用%lf输出,更直观
system("pause");
return 0;
}
最后,我给你们附上10以内阶乘的结果
以下列出1至10的阶乘。
1!=1,
2!=2,
3!=6,
4!=24,
5!=120,
6!=720,
7!=5040,
8!=40320
9!=362880
10!=3628800
另外,0的阶乘是1,楼主自己在代码里面加一条if条件,判断如果是0,直接判定阶乘是1,建议楼主试试,让用户输入一个整数,然后去求这个整数的阶乘
[此贴子已经被作者于2016-11-1 09:33编辑过]