1. 程式人生 > >求自然數的前n項和,如1+2!+3!+...+n!

求自然數的前n項和,如1+2!+3!+...+n!

#include <stdio.h>
int main()
{
int i, j, n;
float sum = 0,tmp;
printf("Please input a number:");
while(1)
{
if(scanf("%d",&n) != 1 || getchar() != '\n')
//判斷輸入函式的返回值是否為1,如果為1,表示輸入的格式正確

//判斷輸入的數值後是否是換行符,如果是,這表明輸入正確 

{
printf("Input error, Please input again\n");
while(getchar() != '\n');//清除輸入緩衝區中的非法字元 
//getchar的返回值就是每次衝緩衝區中提取一個字元 
continue;//跳出if語句,重新執行while迴圈 
}
break;//當滿足上面的條件時,直接結束while迴圈 
}
for(i = 1; i <= n; i++)//迴圈n次 
{
tmp = 1;
for(j = 1; j <= i; j++)//計算出i的階乘 
{
tmp *= j; 
}
sum += tmp;//累加i的階層 
}
printf("The result is:%f\n",sum);
return 0;