calcnewt.c

来自「MIDI解码程序(用VC编写)」· C语言 代码 · 共 62 行

C
62
字号
#include <stdio.h>#include <math.h>double newt_coeffs[58][58];int main(int argc, const char *argv[]){    int i, j, n = 57;    int sign;#ifdef _MSC_VER	FILE *fp;	if (argc != 2)	{		fprintf(stderr, "usage: calcnewt <filename>\n");		return 1;	}	fp = fopen(argv[1], "w");	if (fp == NULL)	{		fprintf(stderr, "cannot open file:%s\n", argv[1]);		return 2;	}#endif    newt_coeffs[0][0] = 1;    for (i = 0; i <= n; i++)    {    	newt_coeffs[i][0] = 1;    	newt_coeffs[i][i] = 1;	if (i > 1)	{	    newt_coeffs[i][0] = newt_coeffs[i-1][0] / i;	    newt_coeffs[i][i] = newt_coeffs[i-1][0] / i;	}    	for (j = 1; j < i; j++)    	{    	    newt_coeffs[i][j] = newt_coeffs[i-1][j-1] + newt_coeffs[i-1][j];			if (i > 1)	    		newt_coeffs[i][j] /= i;		}    }    for (i = 0; i <= n; i++)    	for (j = 0, sign = pow(-1, i); j <= i; j++, sign *= -1)    	    newt_coeffs[i][j] *= sign;#ifdef _MSC_VER    for (i = 0; i <= n; i++)	for (j = 0; j <= n; j++)	    fprintf(fp, "(float)%2.32g,\n", newt_coeffs[i][j]);	fclose(fp);#else    for (i = 0; i <= n; i++)	for (j = 0; j <= n; j++)	    printf("%2.32g,\n", newt_coeffs[i][j]);#endif    return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?