階乘數列:利用mul和sum
題目描述
求1+2!+3!+4!+…+30!。
科學計數法,保留兩位小數。
代碼
#include <stdio.h>
int main()
{
float sum=0,mul=1;
for(int i=1;i<=30;i++)
{
mul=mul*i;
sum=sum+mul;
}
printf("%.2e\n",sum);
return 0;
}
體會:
科學計數法:
C++:
頭文件:
#include <iostream>
#include <ios>
#include <iomanip>
....................................................
cout << setprecision (5) << scientific << 1.24565788;
科學計數法,小數點保留5位
C語言:
<一>
%A 浮點數、十六進制數字和p-記法(C99)
%c 一個字符
%d 有符號十進制整數
%e 浮點數、e-記數法
%E 浮點數、E-記數法
%f 浮點數、十進制記數法
%g 根據數值不同自動選擇%f或%e.
%G 根據數值不同自動選擇%f或%e.
%i 有符號十進制數(與%d相同)
%o 無符號八進制整數
%p 指針
%s 字符串
%u 無符號十進制整數
%x 使用十六進制數字0f的無符號十六進制整數
%X 使用十六進制數字0f的無符號十六進制整數
%% 打印一個百分號
<二>
1.%e:不指定輸出數據所佔的寬度和數字部分的小數位數,有的C編譯系統自動指定給出數字部分的小數位數爲6位,指數部分佔5位(如e+002),其中"e"佔1位,指數符號佔1位,指數佔3位,總的指數部分佔5位。數值按規範化指數形式輸出。例如:printf("%e",123.456);輸出如下:1.234560e+002(共13列,有的系統的規定有所不同); 2.%m.ne 輸出的數據共佔m列,其中有n位小數。如果數值長度小於m,則左端補空格。 後兩個都是s格式符,用來輸出字符串。 %m.ns 輸出佔m列,但只取字符串中左端n個字符。這n個字符輸出在m列的右側,左補空格。
<三>
輸出x,輸出結果是以指數形式輸出一個保留2位小數的實數 例如:若x=123.456 那麼printf("%.2e",x);的輸出結果就是1.23e+002數據溢出問題,結果形式處理問題