C primer plus 第六版 第六章 第十二題 程式設計練習答案

Aeron-A發表於2018-10-20

Github地址:φ(>ω<*) 這裡這裡。

#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次的值都各不相同,並沒有發現任何東西。所以我的程式碼可能是錯的。

相關文章