1. 程式人生 > >2018.11.16 c語言學習經驗

2018.11.16 c語言學習經驗

運算問題

π的近似值運算:

編輯了一個計算π的近似值的程式:

#include <stdio.h>
#include <math.h>
int main()
{
	int sign=1,i=0;
	double pi=0.0,n=1.0,term=1.0;
	while (fabs(term)>=1e-6)
	{
		pi=pi+term;
		sign=-sign;
		term=sign/(n+2);
		i++;
	}
	pi=pi*4;
	printf("the result is %10.8f\n",pi);
	printf("the procedure has execute %d times"
,i); return 0; }

執行後執行框保持下圖
執行結果頁面
debug過程中發現12行中,只是進行了n+2操作,但是並沒有對n進行賦值操作,導致term值一直滿足while迴圈的條件,程式成為死迴圈,所以一直保持黑框執行狀態。
所以對程式進行了如下修改

#include <stdio.h>
#include <math.h>
int main()
{
	int sign=1,i=0;
	double pi=0.0,n=1.0,term=1.0;
	while (fabs(term)>=1e-6)
	{
		pi=pi+term;
		n=n+2;
		sign=-sign;
term=sign/n; i++; } pi=pi*4; printf("the result is %10.8f\n",pi); printf("the procedure has execute %d times",i); return 0; }

總結經驗,在進行一系列相互關聯量之間的運算時,步驟不能過度省略精簡,在初學階段,不要過度使用高階操作,可以在後續階段進一步對程式進行精簡改進,和演算法的修改。

乘法運算的錯誤

由於平時數學寫作習慣,經常寫出如下程式語句

n=2n-1;

執行後總是出現於預期不符的結果,而且在debug過程中很容易因為自己的數學閱讀習慣,將這個錯誤忽略。
所以在以後的編輯過程中要注意寫成

n=2*n-1;

“*”一定不能忽略。