程序如下: main( ) { int n,i. long int s. printf(" please input n (n>=0) :"). scanf("%d" , &.n). if (n>=0) { s = 1 . if (n>0) { i = 1 . while (i<=n) { s * = i . i = i 1 . } } printf("%d! = %ld \n",n,s). } else printf("Invalid input! \n"). } 运行结果如下: please input n(n>=0): 0 0!= 1
please input n(n>=0): 6 6!= 720
please input n(n>=0): - 2 Invalid input!
考察图3- 9中循环部分的流程图可以看出,在循环前各变量应有合适的值( s = 1 ),另外,控制循环结束的变量(此处为i )必须在循环体中被改变,否则,循环将无限进行下去,成为死循环。
[例3-12] 利用格里高利公式求p : p/4 = 1 - 1/3 1/5 - 1/7 ... 直到最后一项的绝对值小于等于1 0- 6为止。 程序如下: # include # include { main( ) { double e,p i . long int n,s . t = 1.0. n = 1. s = 1. pi = 0.0. while (fabs(t)>=1e-6) { p i = p i t . n = n 2 . s = -s.