计算2/1,3/2,5/3,8/5,13/8,21/13……前n项的和(仅用于讨论)

来源:互联网 发布:linux 嵌入式 播放器 编辑:程序博客网 时间:2024/05/16 08:31

#include <stdio.h>#include <stdlib.h>#define add 5int main(void){long n = 0, i = 0, ii = 1;double sum = 0.0;long double a = 1.0, b = 2.0;long double *p_ab = NULL;long double *p_Temp = NULL;p_ab = calloc(add,sizeof(long double));if (!p_ab){return 1;}printf("你要计算前几项和:");scanf_s(" %ld", &n, sizeof(n));for (i = 0; i < n; ++i){if (i >= add){ii++;p_Temp = realloc(p_ab, ii*add*sizeof(long double));if (!p_ab){free(p_ab);p_ab = NULL;return 1;}p_ab = p_Temp;}if (i == 0){sum += b / a;p_ab[i] = a + b;}else if (i == 1){sum += p_ab[i - 1] / b;p_ab[i] = p_ab[i - 1] + b;}else{sum += p_ab[i - 1] / p_ab[i - 2];p_ab[i] = p_ab[i - 1] + p_ab[i - 2];}}printf("%lf\n",sum);free(p_ab);p_ab = NULL;system("pause");return 0;}

阅读全文
0 0
原创粉丝点击