C primer plus 第六版 第六章 第十二題 程式設計練習答案
阿新 • • 發佈:2018-12-16
#include<stdio.h> #define l 1.0 int main(void) { int i = 0; // Create for loop. int limit = 0; // The limit for loop times. float j = 2.0; // Use in count. float result_1 = 1.0; // Save result. float result_2 = 1.0; // Save result. printf("Please input limit for loop times ( Enter 'q' to quit ):"); while( scanf("%d", &limit ) == 1) { limit--; // For result 1 . for(i = 0; i < limit; i++, j++) { result_1 += l/j; } // For result 2. for(i = 0, j = 2.0; i < limit/2; i++, j += 2) { result_2 -= l/j; } for(i = 0, j = 2.0; i < limit/2; i++, j++) { result_2 += l/j; } printf("\nThe result 1 is %5f .\n", result_1); printf("The result 2 is %5f .\n", result_2); printf("\nPlease input limit for loop times ( Enter 'q' to quit ):"); } getchar(); getchar(); return 0; }
書上說兩個序列會無限收斂於某值。但是我寫出來的程式碼執行100、1000、10000次的值都各不相同,並沒有發現任何東西。所以我的程式碼可能是錯的。