2018.11.16 c語言學習經驗
阿新 • • 發佈:2018-12-21
運算問題
π的近似值運算:
編輯了一個計算π的近似值的程式:
#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;
“*”一定不能忽略。