C语言求 π
发布网友
发布时间:2022-04-30 23:44
我来回答
共3个回答
热心网友
时间:2022-06-20 16:59
C 语言是一种编译型语言, 每个程式执行时都从 main 函数开始执行, 所以每个 C 语言程序都必须包含一个且只能包含一个 main 函数, C 语言的语句每条语句以 ";" 作为结束符, 程式的写法可以不拘泥与格式, 但是要想写出好程式, 需要尽可能的每条语句分开, 写出自己和别人都能看懂的程式, C 语言本身提供了一些标准的函数库, 用来简化 C 程序的编写, 例如: stdio.h, 是 Standard Input Output (标准输入输出库), math.h 是 Math (数学函数库), 函数库所有定义的函数都会在 head (头文件) ".h" 中声明, 在使用标准头文件时, 要使用 C 语言编译器预处理关键字 #include (包含), C 语言的程序会在编译自动加入根据头文件的声明连接你在编程中使用的库函数, C 语言提供五种不同类型的数据类型, int (integter 整数型), float (浮点型), char (character 字符型), void (无值型), bool (boolean 布尔型), 提供基本的判断语句 if ... else, 循环结构 for, while, do.. while 和多分枝结构 switch, C 语言还提供两种写给别人帮助理解方式注释方式, 第一种是使用 // (双斜杠) 后面加注释内容, 注释内容仅限于本行的结束, 第二种是 /* ... */ (省略号中间是注释的内容) (单斜杠加星号开始, 星号加单斜杠结束) 的块注释.
以上的给你大概了解, 下面是对你的程式的等价变化, 和注释
#include <stdio.h> // 包含标注输入输出头文件
#include <math.h> // 包含数学函数头文件
int main() // main 函数, 是函数执行进入点
{
int s = 1; // 定义一个整数型变量 s, 并赋值初始值 1
float n, t, pi; // 定义三个浮点型变量 n, t, pi, 多个相同的定义可以写在一起用逗号作为分隔符
t = 1; // 给浮点型变量 t 赋值初始值 1
pi = 0; // 给浮点型变量 pi 赋值初始值 0
n = 1.0; // 给浮点型变量 n 赋值初始值 1
/* 下面的 fabs(t) 是调用 math 函数库里面的去绝对值函数, 这个值和1e-6 (表示1.0乘以10负六次方), 表示一个很小的值, 浮点数比较时, 和很小的数相比, 表示近似等于 0, while 是循环语句, 是下面的大括号里面的是否执行的条件
*/
while (fabs(t) < 1e-6)
{
pi = pi+t; // 将 pi 原来值加上 t, 所得值再赋值给 pi, 第一次执行, t 就是 1
n = n+2; // 和上面的相同的含义
s = -s; // 取 s 原值的相反数, 再赋值给 s
t = s / n; // t 取新的值, 作为下次循环的判断条件, 给下一次次执行 t 作预备
}
pi = pi * 4; // 以上计算的是π/4的值, 乘以4的得到π
printf("pi=%10.6f\n", pi); // 调用标准输出函数printf, 参数"pi=%10.6f\n" 是格式化输出的格式
return 0; // 表示程序执行成功
}
以上只是大概的解释, 在看看书, 了解吧
热心网友
时间:2022-06-20 17:00
pi是当前计算出的近似值,s是下一项的符号,t分别等于-1/3,+1/5,-1/7,...
t=1,pi=0,n=1.0,s=1
第1次循环:pi=0+1=1,n=1.0+2=3.0,s=1*(-1)=-1,t=-1/3.0
第2次循环:pi=1+(-1/3.0),n=3.0+2=5.0,s=(-1)*(-1)=1,t=1/5.0
第3次循环:pi=1+(-1/3.0)+(1/5.0),n=5.0+2=7.0,s=1*(-1)=-1,t=-1/7.0
....
pi不断记录之前的运算结果,每次都是pi=之前运算结果+当前计算出的t,而t依次等于-1/3,+1/5,-1/7,...这个过程一直计算到新的t计算的出数据小于1e-6即0.000001为止
热心网友
时间:2022-06-20 17:00
math.h 是引用数学计算相关的头文件。。这个没什么好说的。float n是定义了一个浮点型的单精度的变量。。。线面一行红线,全部是定义变量并赋初始值。。。fabs是一个求浮点型变量绝对值的函数。。。追问我想知道我提问的问题NO.NOE里面的1-1/3 为什么写成程序之后第一个1就不见了啊??
追答浮点。。小数位在哪儿啊