阶乘数列:利用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)
%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的无符号十六进制整数
%% 打印一个百分号
%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的无符号十六进制整数
%% 打印一个百分号
使用printf ()函数
printf()的基本形式: printf("格式控制字符串",变量列表);
<二>
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数据溢出问题,结果形式处理问题